all:
  children:
    cephs:
      hosts:
        instance: null
    computes:
      hosts:
        instance: null
    controllers:
      hosts:
        instance: null
    zuul_unreachable:
      hosts: {}
  hosts:
    instance:
      ansible_connection: ssh
      ansible_host: 162.253.55.218
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      ceph_conf_overrides:
      - option: mon allow pool size one
        section: global
        value: true
      - option: osd crush chooseleaf type
        section: global
        value: 0
      - option: auth allow insecure global id reclaim
        section: mon
        value: false
      ceph_csi_rbd_helm_values:
        provisioner:
          replicaCount: 1
      ceph_fsid: 4837cbf8-4f90-4300-b3f6-726c9b9f89b4
      ceph_osd_devices:
      - /dev/ceph-{{ inventory_hostname_short }}-osd0/data
      - /dev/ceph-{{ inventory_hostname_short }}-osd1/data
      - /dev/ceph-{{ inventory_hostname_short }}-osd2/data
      cilium_helm_values:
        operator:
          replicas: 1
      cilium_ipv4_cidr: 172.24.0.0/16
      csi_driver: rbd
      kube_vip_address: 172.17.0.100
      kube_vip_interface: '{{ ansible_facts[''default_ipv4''].interface }}'
      kubernetes_hostname: '{{ ansible_facts[''default_ipv4''].address }}'
      molecule_scenario: csi
      nodepool:
        az: nova
        cloud: public
        external_id: 667e20aa-06e2-4f89-ab48-dc3149112364
        host_id: c9670958829e9c96e47d452d2c9c4ce9edaac336d3dbc4a3c4ec531c
        interface_ip: 162.253.55.218
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 162.253.55.218
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.218
        public_ipv6: 2604:e100:1:0:f816:3eff:fe0e:ca7f
        region: ca-ymq-1
        slot: null
      zuul_node:
        az: nova
        cloud: public
        external_id: 667e20aa-06e2-4f89-ab48-dc3149112364
        host_id: c9670958829e9c96e47d452d2c9c4ce9edaac336d3dbc4a3c4ec531c
        interface_ip: 162.253.55.218
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 162.253.55.218
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.218
        public_ipv6: 2604:e100:1:0:f816:3eff:fe0e:ca7f
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    ceph_conf_overrides:
    - option: mon allow pool size one
      section: global
      value: true
    - option: osd crush chooseleaf type
      section: global
      value: 0
    - option: auth allow insecure global id reclaim
      section: mon
      value: false
    ceph_csi_rbd_helm_values:
      provisioner:
        replicaCount: 1
    ceph_fsid: 4837cbf8-4f90-4300-b3f6-726c9b9f89b4
    ceph_osd_devices:
    - /dev/ceph-{{ inventory_hostname_short }}-osd0/data
    - /dev/ceph-{{ inventory_hostname_short }}-osd1/data
    - /dev/ceph-{{ inventory_hostname_short }}-osd2/data
    cilium_helm_values:
      operator:
        replicas: 1
    cilium_ipv4_cidr: 172.24.0.0/16
    csi_driver: rbd
    kube_vip_address: 172.17.0.100
    kube_vip_interface: '{{ ansible_facts[''default_ipv4''].interface }}'
    kubernetes_hostname: '{{ ansible_facts[''default_ipv4''].address }}'
    molecule_scenario: csi
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: zuul-config/zuul.d/jobs.yaml@main#1>'
      - '<Job molecule explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-jobs/zuul.d/ansible-jobs.yaml@main#1>'
      - '<Job atmosphere-molecule explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/atmosphere/.zuul.yaml@main#17>'
      - '<Job atmosphere-molecule-csi explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/atmosphere/.zuul.yaml@main#53>'
      - '<Job atmosphere-molecule-csi-rbd explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/atmosphere/.zuul.yaml@main#66>'
      - '<Job atmosphere-molecule-csi-rbd explicit: None implied: None source: vexxhost/atmosphere/.zuul.yaml@main#72>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: a8d2cc95158e44408d7f2e797486faf1
      build_refs:
      - branch: main
        change: '3564'
        change_message: "feat(kube_prometheus_stack): replace HighInternalServerErrors
          with SLO-based NGINX Ingress alerts\n\nReplaces the basic `HighInternalServerErrors`
          alert with two granular SLO-based alerts following the pattern established
          in #3542.\n\n## Changes\n\n- **New alerts** (`nginx.libsonnet`):\n  - `NginxIngressHighErrorRate`
          (P3): 5% threshold, 15min duration\n  - `NginxIngressCriticalErrorRate`
          (P2): 20% threshold, 5min duration\n  \n- **Removed** `HighInternalServerErrors`
          from `openstack.libsonnet`\n\n- **Alert structure**:\n  ```jsonnet\n  {\n
          \   alert: 'NginxIngressHighErrorRate',\n    expr: |||\n      (\n        sum
          by (service) (rate(nginx_ingress_controller_requests{status=~\"5[0-9]{2}\"}[5m]))\n
          \       /\n        sum by (service) (rate(nginx_ingress_controller_requests[5m]))\n
          \     ) > 0.05\n    |||,\n    'for': '15m',\n    annotations: {\n      summary:
          'NGINX Ingress: elevated error rate affecting service',\n      description:
          'The service {{ $labels.service }} is returning 5xx errors at {{ $value
          | humanizePercentage }}...',\n      runbook_url: 'https://vexxhost.github.io/atmosphere/admin/monitoring.html#nginxingresshigherrorrate',\n
          \   },\n  }\n  ```\n\n- **Documentation**: Added runbook entries with root
          cause analysis and diagnostic procedures\n\n- **Tests**: 4 unit tests covering
          threshold boundaries and duration requirements\n\n## Breaking Change\n\nAlert
          name changed from `HighInternalServerErrors` to `NginxIngressHighErrorRate`
          / `NginxIngressCriticalErrorRate`. Update routing rules and silences accordingly.\n\n<!--
          START COPILOT CODING AGENT TIPS -->\n---\n\n\U0001F4AC We'd love your input!
          Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).\n"
        change_url: https://github.com/vexxhost/atmosphere/pull/3564
        commit_id: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
        patchset: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      buildset: 5bcbf90e8c8b4e328062a3a332539905
      buildset_refs:
      - branch: main
        change: '3564'
        change_message: "feat(kube_prometheus_stack): replace HighInternalServerErrors
          with SLO-based NGINX Ingress alerts\n\nReplaces the basic `HighInternalServerErrors`
          alert with two granular SLO-based alerts following the pattern established
          in #3542.\n\n## Changes\n\n- **New alerts** (`nginx.libsonnet`):\n  - `NginxIngressHighErrorRate`
          (P3): 5% threshold, 15min duration\n  - `NginxIngressCriticalErrorRate`
          (P2): 20% threshold, 5min duration\n  \n- **Removed** `HighInternalServerErrors`
          from `openstack.libsonnet`\n\n- **Alert structure**:\n  ```jsonnet\n  {\n
          \   alert: 'NginxIngressHighErrorRate',\n    expr: |||\n      (\n        sum
          by (service) (rate(nginx_ingress_controller_requests{status=~\"5[0-9]{2}\"}[5m]))\n
          \       /\n        sum by (service) (rate(nginx_ingress_controller_requests[5m]))\n
          \     ) > 0.05\n    |||,\n    'for': '15m',\n    annotations: {\n      summary:
          'NGINX Ingress: elevated error rate affecting service',\n      description:
          'The service {{ $labels.service }} is returning 5xx errors at {{ $value
          | humanizePercentage }}...',\n      runbook_url: 'https://vexxhost.github.io/atmosphere/admin/monitoring.html#nginxingresshigherrorrate',\n
          \   },\n  }\n  ```\n\n- **Documentation**: Added runbook entries with root
          cause analysis and diagnostic procedures\n\n- **Tests**: 4 unit tests covering
          threshold boundaries and duration requirements\n\n## Breaking Change\n\nAlert
          name changed from `HighInternalServerErrors` to `NginxIngressHighErrorRate`
          / `NginxIngressCriticalErrorRate`. Update routing rules and silences accordingly.\n\n<!--
          START COPILOT CODING AGENT TIPS -->\n---\n\n\U0001F4AC We'd love your input!
          Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).\n"
        change_url: https://github.com/vexxhost/atmosphere/pull/3564
        commit_id: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
        patchset: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      change: '3564'
      change_message: "feat(kube_prometheus_stack): replace HighInternalServerErrors
        with SLO-based NGINX Ingress alerts\n\nReplaces the basic `HighInternalServerErrors`
        alert with two granular SLO-based alerts following the pattern established
        in #3542.\n\n## Changes\n\n- **New alerts** (`nginx.libsonnet`):\n  - `NginxIngressHighErrorRate`
        (P3): 5% threshold, 15min duration\n  - `NginxIngressCriticalErrorRate` (P2):
        20% threshold, 5min duration\n  \n- **Removed** `HighInternalServerErrors`
        from `openstack.libsonnet`\n\n- **Alert structure**:\n  ```jsonnet\n  {\n
        \   alert: 'NginxIngressHighErrorRate',\n    expr: |||\n      (\n        sum
        by (service) (rate(nginx_ingress_controller_requests{status=~\"5[0-9]{2}\"}[5m]))\n
        \       /\n        sum by (service) (rate(nginx_ingress_controller_requests[5m]))\n
        \     ) > 0.05\n    |||,\n    'for': '15m',\n    annotations: {\n      summary:
        'NGINX Ingress: elevated error rate affecting service',\n      description:
        'The service {{ $labels.service }} is returning 5xx errors at {{ $value |
        humanizePercentage }}...',\n      runbook_url: 'https://vexxhost.github.io/atmosphere/admin/monitoring.html#nginxingresshigherrorrate',\n
        \   },\n  }\n  ```\n\n- **Documentation**: Added runbook entries with root
        cause analysis and diagnostic procedures\n\n- **Tests**: 4 unit tests covering
        threshold boundaries and duration requirements\n\n## Breaking Change\n\nAlert
        name changed from `HighInternalServerErrors` to `NginxIngressHighErrorRate`
        / `NginxIngressCriticalErrorRate`. Update routing rules and silences accordingly.\n\n<!--
        START COPILOT CODING AGENT TIPS -->\n---\n\n\U0001F4AC We'd love your input!
        Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).\n"
      change_url: https://github.com/vexxhost/atmosphere/pull/3564
      child_jobs: []
      commit_id: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
      event_id: ebbc4350-0512-11f1-95ec-a0a25d578c28
      executor:
        hostname: 3a2793d2bd32
        inventory_file: /var/lib/zuul/builds/a8d2cc95158e44408d7f2e797486faf1/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/a8d2cc95158e44408d7f2e797486faf1/work/logs
        result_data_file: /var/lib/zuul/builds/a8d2cc95158e44408d7f2e797486faf1/work/results.json
        src_root: /var/lib/zuul/builds/a8d2cc95158e44408d7f2e797486faf1/work/src
        work_root: /var/lib/zuul/builds/a8d2cc95158e44408d7f2e797486faf1/work
      include_vars: []
      items:
      - branch: main
        change: '3564'
        change_message: "feat(kube_prometheus_stack): replace HighInternalServerErrors
          with SLO-based NGINX Ingress alerts\n\nReplaces the basic `HighInternalServerErrors`
          alert with two granular SLO-based alerts following the pattern established
          in #3542.\n\n## Changes\n\n- **New alerts** (`nginx.libsonnet`):\n  - `NginxIngressHighErrorRate`
          (P3): 5% threshold, 15min duration\n  - `NginxIngressCriticalErrorRate`
          (P2): 20% threshold, 5min duration\n  \n- **Removed** `HighInternalServerErrors`
          from `openstack.libsonnet`\n\n- **Alert structure**:\n  ```jsonnet\n  {\n
          \   alert: 'NginxIngressHighErrorRate',\n    expr: |||\n      (\n        sum
          by (service) (rate(nginx_ingress_controller_requests{status=~\"5[0-9]{2}\"}[5m]))\n
          \       /\n        sum by (service) (rate(nginx_ingress_controller_requests[5m]))\n
          \     ) > 0.05\n    |||,\n    'for': '15m',\n    annotations: {\n      summary:
          'NGINX Ingress: elevated error rate affecting service',\n      description:
          'The service {{ $labels.service }} is returning 5xx errors at {{ $value
          | humanizePercentage }}...',\n      runbook_url: 'https://vexxhost.github.io/atmosphere/admin/monitoring.html#nginxingresshigherrorrate',\n
          \   },\n  }\n  ```\n\n- **Documentation**: Added runbook entries with root
          cause analysis and diagnostic procedures\n\n- **Tests**: 4 unit tests covering
          threshold boundaries and duration requirements\n\n## Breaking Change\n\nAlert
          name changed from `HighInternalServerErrors` to `NginxIngressHighErrorRate`
          / `NginxIngressCriticalErrorRate`. Update routing rules and silences accordingly.\n\n<!--
          START COPILOT CODING AGENT TIPS -->\n---\n\n\U0001F4AC We'd love your input!
          Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).\n"
        change_url: https://github.com/vexxhost/atmosphere/pull/3564
        commit_id: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
        patchset: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      job: atmosphere-molecule-csi-rbd
      jobtags: []
      max_attempts: 3
      message: ZmVhdChrdWJlX3Byb21ldGhldXNfc3RhY2spOiByZXBsYWNlIEhpZ2hJbnRlcm5hbFNlcnZlckVycm9ycyB3aXRoIFNMTy1iYXNlZCBOR0lOWCBJbmdyZXNzIGFsZXJ0cwoKUmVwbGFjZXMgdGhlIGJhc2ljIGBIaWdoSW50ZXJuYWxTZXJ2ZXJFcnJvcnNgIGFsZXJ0IHdpdGggdHdvIGdyYW51bGFyIFNMTy1iYXNlZCBhbGVydHMgZm9sbG93aW5nIHRoZSBwYXR0ZXJuIGVzdGFibGlzaGVkIGluICMzNTQyLgoKIyMgQ2hhbmdlcwoKLSAqKk5ldyBhbGVydHMqKiAoYG5naW54LmxpYnNvbm5ldGApOgogIC0gYE5naW54SW5ncmVzc0hpZ2hFcnJvclJhdGVgIChQMyk6IDUlIHRocmVzaG9sZCwgMTVtaW4gZHVyYXRpb24KICAtIGBOZ2lueEluZ3Jlc3NDcml0aWNhbEVycm9yUmF0ZWAgKFAyKTogMjAlIHRocmVzaG9sZCwgNW1pbiBkdXJhdGlvbgogIAotICoqUmVtb3ZlZCoqIGBIaWdoSW50ZXJuYWxTZXJ2ZXJFcnJvcnNgIGZyb20gYG9wZW5zdGFjay5saWJzb25uZXRgCgotICoqQWxlcnQgc3RydWN0dXJlKio6CiAgYGBganNvbm5ldAogIHsKICAgIGFsZXJ0OiAnTmdpbnhJbmdyZXNzSGlnaEVycm9yUmF0ZScsCiAgICBleHByOiB8fHwKICAgICAgKAogICAgICAgIHN1bSBieSAoc2VydmljZSkgKHJhdGUobmdpbnhfaW5ncmVzc19jb250cm9sbGVyX3JlcXVlc3Rze3N0YXR1cz1+IjVbMC05XXsyfSJ9WzVtXSkpCiAgICAgICAgLwogICAgICAgIHN1bSBieSAoc2VydmljZSkgKHJhdGUobmdpbnhfaW5ncmVzc19jb250cm9sbGVyX3JlcXVlc3RzWzVtXSkpCiAgICAgICkgPiAwLjA1CiAgICB8fHwsCiAgICAnZm9yJzogJzE1bScsCiAgICBhbm5vdGF0aW9uczogewogICAgICBzdW1tYXJ5OiAnTkdJTlggSW5ncmVzczogZWxldmF0ZWQgZXJyb3IgcmF0ZSBhZmZlY3Rpbmcgc2VydmljZScsCiAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHNlcnZpY2Uge3sgJGxhYmVscy5zZXJ2aWNlIH19IGlzIHJldHVybmluZyA1eHggZXJyb3JzIGF0IHt7ICR2YWx1ZSB8IGh1bWFuaXplUGVyY2VudGFnZSB9fS4uLicsCiAgICAgIHJ1bmJvb2tfdXJsOiAnaHR0cHM6Ly92ZXh4aG9zdC5naXRodWIuaW8vYXRtb3NwaGVyZS9hZG1pbi9tb25pdG9yaW5nLmh0bWwjbmdpbnhpbmdyZXNzaGlnaGVycm9ycmF0ZScsCiAgICB9LAogIH0KICBgYGAKCi0gKipEb2N1bWVudGF0aW9uKio6IEFkZGVkIHJ1bmJvb2sgZW50cmllcyB3aXRoIHJvb3QgY2F1c2UgYW5hbHlzaXMgYW5kIGRpYWdub3N0aWMgcHJvY2VkdXJlcwoKLSAqKlRlc3RzKio6IDQgdW5pdCB0ZXN0cyBjb3ZlcmluZyB0aHJlc2hvbGQgYm91bmRhcmllcyBhbmQgZHVyYXRpb24gcmVxdWlyZW1lbnRzCgojIyBCcmVha2luZyBDaGFuZ2UKCkFsZXJ0IG5hbWUgY2hhbmdlZCBmcm9tIGBIaWdoSW50ZXJuYWxTZXJ2ZXJFcnJvcnNgIHRvIGBOZ2lueEluZ3Jlc3NIaWdoRXJyb3JSYXRlYCAvIGBOZ2lueEluZ3Jlc3NDcml0aWNhbEVycm9yUmF0ZWAuIFVwZGF0ZSByb3V0aW5nIHJ1bGVzIGFuZCBzaWxlbmNlcyBhY2NvcmRpbmdseS4KCjwhLS0gU1RBUlQgQ09QSUxPVCBDT0RJTkcgQUdFTlQgVElQUyAtLT4KLS0tCgrwn5KsIFdlJ2QgbG92ZSB5b3VyIGlucHV0ISBTaGFyZSB5b3VyIHRob3VnaHRzIG9uIENvcGlsb3QgY29kaW5nIGFnZW50IGluIG91ciBbMiBtaW51dGUgc3VydmV5XShodHRwczovL2doLmlvL2NvcGlsb3QtY29kaW5nLWFnZW50LXN1cnZleSkuCg==
      patchset: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/vexxhost.dev/zuul-config:
            canonical_name: vexxhost.dev/zuul-config
            checkout: main
            commit: 9052b5a7781b3346e4cffd452a54448cbff54d8b
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: d73b78cc624f363c6b7fcfe833f2db4571e4e979
          trusted/project_2/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: a6e68243e02ef030ce5e75f8b67630880c475f33
          untrusted/project_0/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: a6e68243e02ef030ce5e75f8b67630880c475f33
          untrusted/project_1/vexxhost.dev/zuul-config:
            canonical_name: vexxhost.dev/zuul-config
            checkout: main
            commit: 9052b5a7781b3346e4cffd452a54448cbff54d8b
          untrusted/project_2/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: d73b78cc624f363c6b7fcfe833f2db4571e4e979
          untrusted/project_3/github.com/vexxhost/atmosphere:
            canonical_name: github.com/vexxhost/atmosphere
            checkout: main
            commit: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
          untrusted/project_4/opendev.org/openstack/openstack-helm:
            canonical_name: opendev.org/openstack/openstack-helm
            checkout: master
            commit: 3a57ef7049b4b76a5a29f8331975931464a14d51
        playbooks:
        - path: untrusted/project_0/github.com/vexxhost/zuul-jobs/playbooks/molecule/run.yaml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_1/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/playbook_0/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_0/github.com/vexxhost/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/vexxhost/atmosphere
        name: vexxhost/atmosphere
        short_name: atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
      projects:
        github.com/vexxhost/atmosphere:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          checkout: main
          checkout_description: zuul branch
          commit: 28eb61b7ed30e8ec0331e5588abd4b4e6f5d775b
          name: vexxhost/atmosphere
          required: false
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
      ref: refs/pull/3564/head
      resources: {}
      tenant: oss
      timeout: 1800
      topic: null
      voting: true
