all:
  children:
    cephs:
      hosts:
        instance: null
    computes:
      hosts:
        instance: null
    controllers:
      hosts:
        instance: null
    zuul_unreachable:
      hosts: {}
  hosts:
    instance:
      ansible_connection: ssh
      ansible_host: 199.204.45.25
      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: local-path-provisioner
      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: 4d5060bc-f26c-4bdb-9c94-385baf432c9e
        host_id: b3056f425dc12eb7c2b177d04ce92ce8e9d8895ce2af8682a7cd0f26
        interface_ip: 199.204.45.25
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 199.204.45.25
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.25
        public_ipv6: 2604:e100:1:0:f816:3eff:fee0:7e88
        region: ca-ymq-1
        slot: null
      zuul_node:
        az: nova
        cloud: public
        external_id: 4d5060bc-f26c-4bdb-9c94-385baf432c9e
        host_id: b3056f425dc12eb7c2b177d04ce92ce8e9d8895ce2af8682a7cd0f26
        interface_ip: 199.204.45.25
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 199.204.45.25
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.25
        public_ipv6: 2604:e100:1:0:f816:3eff:fee0:7e88
        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: local-path-provisioner
    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:stable/2025.1}}
        source: vexxhost/atmosphere/.zuul.yaml@stable/2025.1#17>'
      - '<Job atmosphere-molecule-csi explicit: None implied: {MatchAny:{ImpliedBranchMatcher:stable/2025.1}}
        source: vexxhost/atmosphere/.zuul.yaml@stable/2025.1#53>'
      - '<Job atmosphere-molecule-csi-local-path-provisioner explicit: None implied:
        {MatchAny:{ImpliedBranchMatcher:stable/2025.1}} source: vexxhost/atmosphere/.zuul.yaml@stable/2025.1#60>'
      - '<Job atmosphere-molecule-csi-local-path-provisioner explicit: None implied:
        None source: vexxhost/atmosphere/.zuul.yaml@stable/2025.1#72>'
      ansible_version: '9'
      attempts: 2
      branch: stable/2025.1
      build: 37eeb858c2344745a46e44c6518fd584
      build_refs:
      - branch: stable/2025.1
        change: '3615'
        change_message: "[stable/2025.1] Fix AlertmanagerClusterCrashlooping false
          positive by preserving endpoint label\n\nCherry-pick of #3581 to stable/2025.1.\n\nThe
          `AlertmanagerClusterCrashlooping` alert fires false positives when ServiceMonitors
          scrape multiple endpoints from the same pod. The labeldrop regex removes
          `endpoint`, causing `process_start_time_seconds` from different processes
          (alertmanager + config-reloader sidecar) to merge into a single time series
          with alternating values. The `changes()` function counts every scrape as
          a restart.\n\n## Changes\n\n- **ServiceMonitor relabeling**: Remove `endpoint`
          from labeldrop regex in `roles/kube_prometheus_stack/vars/main.yml`\n  ```yaml\n
          \ # Before\n  regex: ^(container|endpoint|namespace|pod|node|service)$\n
          \ \n  # After  \n  regex: ^(container|namespace|pod|node|service)$\n  ```\n\n-
          **Vocabulary**: Add `Alertmanager` to vale dictionary for linting\n\n- **Release
          note**: Document the fix and its impact on all ServiceMonitors (Prometheus,
          Grafana, etc.)\n\n## Impact\n\nPreserving `endpoint` label is standard Prometheus
          behavior. Metrics now correctly distinguish which port/path they originated
          from. Existing alert rules and dashboards that aggregate across endpoints
          remain unaffected.\n\n<!-- START COPILOT ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original
          prompt</summary>\n\n> \n> ----\n> \n> *This section details on the original
          issue you should resolve*\n> \n> <issue_title>[stable/2025.1] Fix AlertmanagerClusterCrashlooping
          false positive by preserving endpoint label</issue_title>\n> <issue_description>Manual
          cherrypick required.\n> \n> vexxhost/atmosphere#3581 failed to apply on
          top of branch \"stable/2025.1\":\n> ```\n> Patch is empty.\n> hint: When
          you have resolved this problem, run \"git am --continue\".\n> hint: If you
          prefer to skip this patch, run \"git am --skip\" instead.\n> hint: To record
          the empty patch as an empty commit, run \"git am --allow-empty\".\n> hint:
          To restore the original branch and stop patching, run \"git am --abort\".\n>
          hint: Disable this message with \"git config advice.mergeConflict false\"\n>
          \n> ```</issue_description>\n> \n> <agent_instructions>Can you create a
          clean cherry-pick for the PR that failed to backport?</agent_instructions>\n>
          \n> ## Comments on the Issue (you are @copilot in this section)\n> \n> <comments>\n>
          </comments>\n> \n\n\n</details>\n\n\n\n<!-- START COPILOT CODING AGENT SUFFIX
          -->\n\n- Fixes vexxhost/atmosphere#3604\n\n<!-- START COPILOT CODING AGENT
          TIPS -->\n---\n\n\U0001F4A1 You can make Copilot smarter by setting up custom
          instructions, customizing its development environment and configuring Model
          Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips)
          in the docs."
        change_url: https://github.com/vexxhost/atmosphere/pull/3615
        commit_id: 67f11c99d45411341139b5aab3da1879990ef1ce
        patchset: 67f11c99d45411341139b5aab3da1879990ef1ce
        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: c20a9455e8a1466bab1c214c566faf85
      buildset_refs:
      - branch: stable/2025.1
        change: '3615'
        change_message: "[stable/2025.1] Fix AlertmanagerClusterCrashlooping false
          positive by preserving endpoint label\n\nCherry-pick of #3581 to stable/2025.1.\n\nThe
          `AlertmanagerClusterCrashlooping` alert fires false positives when ServiceMonitors
          scrape multiple endpoints from the same pod. The labeldrop regex removes
          `endpoint`, causing `process_start_time_seconds` from different processes
          (alertmanager + config-reloader sidecar) to merge into a single time series
          with alternating values. The `changes()` function counts every scrape as
          a restart.\n\n## Changes\n\n- **ServiceMonitor relabeling**: Remove `endpoint`
          from labeldrop regex in `roles/kube_prometheus_stack/vars/main.yml`\n  ```yaml\n
          \ # Before\n  regex: ^(container|endpoint|namespace|pod|node|service)$\n
          \ \n  # After  \n  regex: ^(container|namespace|pod|node|service)$\n  ```\n\n-
          **Vocabulary**: Add `Alertmanager` to vale dictionary for linting\n\n- **Release
          note**: Document the fix and its impact on all ServiceMonitors (Prometheus,
          Grafana, etc.)\n\n## Impact\n\nPreserving `endpoint` label is standard Prometheus
          behavior. Metrics now correctly distinguish which port/path they originated
          from. Existing alert rules and dashboards that aggregate across endpoints
          remain unaffected.\n\n<!-- START COPILOT ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original
          prompt</summary>\n\n> \n> ----\n> \n> *This section details on the original
          issue you should resolve*\n> \n> <issue_title>[stable/2025.1] Fix AlertmanagerClusterCrashlooping
          false positive by preserving endpoint label</issue_title>\n> <issue_description>Manual
          cherrypick required.\n> \n> vexxhost/atmosphere#3581 failed to apply on
          top of branch \"stable/2025.1\":\n> ```\n> Patch is empty.\n> hint: When
          you have resolved this problem, run \"git am --continue\".\n> hint: If you
          prefer to skip this patch, run \"git am --skip\" instead.\n> hint: To record
          the empty patch as an empty commit, run \"git am --allow-empty\".\n> hint:
          To restore the original branch and stop patching, run \"git am --abort\".\n>
          hint: Disable this message with \"git config advice.mergeConflict false\"\n>
          \n> ```</issue_description>\n> \n> <agent_instructions>Can you create a
          clean cherry-pick for the PR that failed to backport?</agent_instructions>\n>
          \n> ## Comments on the Issue (you are @copilot in this section)\n> \n> <comments>\n>
          </comments>\n> \n\n\n</details>\n\n\n\n<!-- START COPILOT CODING AGENT SUFFIX
          -->\n\n- Fixes vexxhost/atmosphere#3604\n\n<!-- START COPILOT CODING AGENT
          TIPS -->\n---\n\n\U0001F4A1 You can make Copilot smarter by setting up custom
          instructions, customizing its development environment and configuring Model
          Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips)
          in the docs."
        change_url: https://github.com/vexxhost/atmosphere/pull/3615
        commit_id: 67f11c99d45411341139b5aab3da1879990ef1ce
        patchset: 67f11c99d45411341139b5aab3da1879990ef1ce
        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: '3615'
      change_message: "[stable/2025.1] Fix AlertmanagerClusterCrashlooping false positive
        by preserving endpoint label\n\nCherry-pick of #3581 to stable/2025.1.\n\nThe
        `AlertmanagerClusterCrashlooping` alert fires false positives when ServiceMonitors
        scrape multiple endpoints from the same pod. The labeldrop regex removes `endpoint`,
        causing `process_start_time_seconds` from different processes (alertmanager
        + config-reloader sidecar) to merge into a single time series with alternating
        values. The `changes()` function counts every scrape as a restart.\n\n## Changes\n\n-
        **ServiceMonitor relabeling**: Remove `endpoint` from labeldrop regex in `roles/kube_prometheus_stack/vars/main.yml`\n
        \ ```yaml\n  # Before\n  regex: ^(container|endpoint|namespace|pod|node|service)$\n
        \ \n  # After  \n  regex: ^(container|namespace|pod|node|service)$\n  ```\n\n-
        **Vocabulary**: Add `Alertmanager` to vale dictionary for linting\n\n- **Release
        note**: Document the fix and its impact on all ServiceMonitors (Prometheus,
        Grafana, etc.)\n\n## Impact\n\nPreserving `endpoint` label is standard Prometheus
        behavior. Metrics now correctly distinguish which port/path they originated
        from. Existing alert rules and dashboards that aggregate across endpoints
        remain unaffected.\n\n<!-- START COPILOT ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original
        prompt</summary>\n\n> \n> ----\n> \n> *This section details on the original
        issue you should resolve*\n> \n> <issue_title>[stable/2025.1] Fix AlertmanagerClusterCrashlooping
        false positive by preserving endpoint label</issue_title>\n> <issue_description>Manual
        cherrypick required.\n> \n> vexxhost/atmosphere#3581 failed to apply on top
        of branch \"stable/2025.1\":\n> ```\n> Patch is empty.\n> hint: When you have
        resolved this problem, run \"git am --continue\".\n> hint: If you prefer to
        skip this patch, run \"git am --skip\" instead.\n> hint: To record the empty
        patch as an empty commit, run \"git am --allow-empty\".\n> hint: To restore
        the original branch and stop patching, run \"git am --abort\".\n> hint: Disable
        this message with \"git config advice.mergeConflict false\"\n> \n> ```</issue_description>\n>
        \n> <agent_instructions>Can you create a clean cherry-pick for the PR that
        failed to backport?</agent_instructions>\n> \n> ## Comments on the Issue (you
        are @copilot in this section)\n> \n> <comments>\n> </comments>\n> \n\n\n</details>\n\n\n\n<!--
        START COPILOT CODING AGENT SUFFIX -->\n\n- Fixes vexxhost/atmosphere#3604\n\n<!--
        START COPILOT CODING AGENT TIPS -->\n---\n\n\U0001F4A1 You can make Copilot
        smarter by setting up custom instructions, customizing its development environment
        and configuring Model Context Protocol (MCP) servers. Learn more [Copilot
        coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs."
      change_url: https://github.com/vexxhost/atmosphere/pull/3615
      child_jobs: []
      commit_id: 67f11c99d45411341139b5aab3da1879990ef1ce
      event_id: 0d76d550-07b6-11f1-96bb-3e9532a94d3c
      executor:
        hostname: 3a2793d2bd32
        inventory_file: /var/lib/zuul/builds/37eeb858c2344745a46e44c6518fd584/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/37eeb858c2344745a46e44c6518fd584/work/logs
        result_data_file: /var/lib/zuul/builds/37eeb858c2344745a46e44c6518fd584/work/results.json
        src_root: /var/lib/zuul/builds/37eeb858c2344745a46e44c6518fd584/work/src
        work_root: /var/lib/zuul/builds/37eeb858c2344745a46e44c6518fd584/work
      include_vars: []
      items:
      - branch: stable/2025.1
        change: '3615'
        change_message: "[stable/2025.1] Fix AlertmanagerClusterCrashlooping false
          positive by preserving endpoint label\n\nCherry-pick of #3581 to stable/2025.1.\n\nThe
          `AlertmanagerClusterCrashlooping` alert fires false positives when ServiceMonitors
          scrape multiple endpoints from the same pod. The labeldrop regex removes
          `endpoint`, causing `process_start_time_seconds` from different processes
          (alertmanager + config-reloader sidecar) to merge into a single time series
          with alternating values. The `changes()` function counts every scrape as
          a restart.\n\n## Changes\n\n- **ServiceMonitor relabeling**: Remove `endpoint`
          from labeldrop regex in `roles/kube_prometheus_stack/vars/main.yml`\n  ```yaml\n
          \ # Before\n  regex: ^(container|endpoint|namespace|pod|node|service)$\n
          \ \n  # After  \n  regex: ^(container|namespace|pod|node|service)$\n  ```\n\n-
          **Vocabulary**: Add `Alertmanager` to vale dictionary for linting\n\n- **Release
          note**: Document the fix and its impact on all ServiceMonitors (Prometheus,
          Grafana, etc.)\n\n## Impact\n\nPreserving `endpoint` label is standard Prometheus
          behavior. Metrics now correctly distinguish which port/path they originated
          from. Existing alert rules and dashboards that aggregate across endpoints
          remain unaffected.\n\n<!-- START COPILOT ORIGINAL PROMPT -->\n\n\n\n<details>\n\n<summary>Original
          prompt</summary>\n\n> \n> ----\n> \n> *This section details on the original
          issue you should resolve*\n> \n> <issue_title>[stable/2025.1] Fix AlertmanagerClusterCrashlooping
          false positive by preserving endpoint label</issue_title>\n> <issue_description>Manual
          cherrypick required.\n> \n> vexxhost/atmosphere#3581 failed to apply on
          top of branch \"stable/2025.1\":\n> ```\n> Patch is empty.\n> hint: When
          you have resolved this problem, run \"git am --continue\".\n> hint: If you
          prefer to skip this patch, run \"git am --skip\" instead.\n> hint: To record
          the empty patch as an empty commit, run \"git am --allow-empty\".\n> hint:
          To restore the original branch and stop patching, run \"git am --abort\".\n>
          hint: Disable this message with \"git config advice.mergeConflict false\"\n>
          \n> ```</issue_description>\n> \n> <agent_instructions>Can you create a
          clean cherry-pick for the PR that failed to backport?</agent_instructions>\n>
          \n> ## Comments on the Issue (you are @copilot in this section)\n> \n> <comments>\n>
          </comments>\n> \n\n\n</details>\n\n\n\n<!-- START COPILOT CODING AGENT SUFFIX
          -->\n\n- Fixes vexxhost/atmosphere#3604\n\n<!-- START COPILOT CODING AGENT
          TIPS -->\n---\n\n\U0001F4A1 You can make Copilot smarter by setting up custom
          instructions, customizing its development environment and configuring Model
          Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips)
          in the docs."
        change_url: https://github.com/vexxhost/atmosphere/pull/3615
        commit_id: 67f11c99d45411341139b5aab3da1879990ef1ce
        patchset: 67f11c99d45411341139b5aab3da1879990ef1ce
        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-local-path-provisioner
      jobtags: []
      max_attempts: 3
      message: W3N0YWJsZS8yMDI1LjFdIEZpeCBBbGVydG1hbmFnZXJDbHVzdGVyQ3Jhc2hsb29waW5nIGZhbHNlIHBvc2l0aXZlIGJ5IHByZXNlcnZpbmcgZW5kcG9pbnQgbGFiZWwKCkNoZXJyeS1waWNrIG9mICMzNTgxIHRvIHN0YWJsZS8yMDI1LjEuCgpUaGUgYEFsZXJ0bWFuYWdlckNsdXN0ZXJDcmFzaGxvb3BpbmdgIGFsZXJ0IGZpcmVzIGZhbHNlIHBvc2l0aXZlcyB3aGVuIFNlcnZpY2VNb25pdG9ycyBzY3JhcGUgbXVsdGlwbGUgZW5kcG9pbnRzIGZyb20gdGhlIHNhbWUgcG9kLiBUaGUgbGFiZWxkcm9wIHJlZ2V4IHJlbW92ZXMgYGVuZHBvaW50YCwgY2F1c2luZyBgcHJvY2Vzc19zdGFydF90aW1lX3NlY29uZHNgIGZyb20gZGlmZmVyZW50IHByb2Nlc3NlcyAoYWxlcnRtYW5hZ2VyICsgY29uZmlnLXJlbG9hZGVyIHNpZGVjYXIpIHRvIG1lcmdlIGludG8gYSBzaW5nbGUgdGltZSBzZXJpZXMgd2l0aCBhbHRlcm5hdGluZyB2YWx1ZXMuIFRoZSBgY2hhbmdlcygpYCBmdW5jdGlvbiBjb3VudHMgZXZlcnkgc2NyYXBlIGFzIGEgcmVzdGFydC4KCiMjIENoYW5nZXMKCi0gKipTZXJ2aWNlTW9uaXRvciByZWxhYmVsaW5nKio6IFJlbW92ZSBgZW5kcG9pbnRgIGZyb20gbGFiZWxkcm9wIHJlZ2V4IGluIGByb2xlcy9rdWJlX3Byb21ldGhldXNfc3RhY2svdmFycy9tYWluLnltbGAKICBgYGB5YW1sCiAgIyBCZWZvcmUKICByZWdleDogXihjb250YWluZXJ8ZW5kcG9pbnR8bmFtZXNwYWNlfHBvZHxub2RlfHNlcnZpY2UpJAogIAogICMgQWZ0ZXIgIAogIHJlZ2V4OiBeKGNvbnRhaW5lcnxuYW1lc3BhY2V8cG9kfG5vZGV8c2VydmljZSkkCiAgYGBgCgotICoqVm9jYWJ1bGFyeSoqOiBBZGQgYEFsZXJ0bWFuYWdlcmAgdG8gdmFsZSBkaWN0aW9uYXJ5IGZvciBsaW50aW5nCgotICoqUmVsZWFzZSBub3RlKio6IERvY3VtZW50IHRoZSBmaXggYW5kIGl0cyBpbXBhY3Qgb24gYWxsIFNlcnZpY2VNb25pdG9ycyAoUHJvbWV0aGV1cywgR3JhZmFuYSwgZXRjLikKCiMjIEltcGFjdAoKUHJlc2VydmluZyBgZW5kcG9pbnRgIGxhYmVsIGlzIHN0YW5kYXJkIFByb21ldGhldXMgYmVoYXZpb3IuIE1ldHJpY3Mgbm93IGNvcnJlY3RseSBkaXN0aW5ndWlzaCB3aGljaCBwb3J0L3BhdGggdGhleSBvcmlnaW5hdGVkIGZyb20uIEV4aXN0aW5nIGFsZXJ0IHJ1bGVzIGFuZCBkYXNoYm9hcmRzIHRoYXQgYWdncmVnYXRlIGFjcm9zcyBlbmRwb2ludHMgcmVtYWluIHVuYWZmZWN0ZWQuCgo8IS0tIFNUQVJUIENPUElMT1QgT1JJR0lOQUwgUFJPTVBUIC0tPgoKCgo8ZGV0YWlscz4KCjxzdW1tYXJ5Pk9yaWdpbmFsIHByb21wdDwvc3VtbWFyeT4KCj4gCj4gLS0tLQo+IAo+ICpUaGlzIHNlY3Rpb24gZGV0YWlscyBvbiB0aGUgb3JpZ2luYWwgaXNzdWUgeW91IHNob3VsZCByZXNvbHZlKgo+IAo+IDxpc3N1ZV90aXRsZT5bc3RhYmxlLzIwMjUuMV0gRml4IEFsZXJ0bWFuYWdlckNsdXN0ZXJDcmFzaGxvb3BpbmcgZmFsc2UgcG9zaXRpdmUgYnkgcHJlc2VydmluZyBlbmRwb2ludCBsYWJlbDwvaXNzdWVfdGl0bGU+Cj4gPGlzc3VlX2Rlc2NyaXB0aW9uPk1hbnVhbCBjaGVycnlwaWNrIHJlcXVpcmVkLgo+IAo+IHZleHhob3N0L2F0bW9zcGhlcmUjMzU4MSBmYWlsZWQgdG8gYXBwbHkgb24gdG9wIG9mIGJyYW5jaCAic3RhYmxlLzIwMjUuMSI6Cj4gYGBgCj4gUGF0Y2ggaXMgZW1wdHkuCj4gaGludDogV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biAiZ2l0IGFtIC0tY29udGludWUiLgo+IGhpbnQ6IElmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gImdpdCBhbSAtLXNraXAiIGluc3RlYWQuCj4gaGludDogVG8gcmVjb3JkIHRoZSBlbXB0eSBwYXRjaCBhcyBhbiBlbXB0eSBjb21taXQsIHJ1biAiZ2l0IGFtIC0tYWxsb3ctZW1wdHkiLgo+IGhpbnQ6IFRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuICJnaXQgYW0gLS1hYm9ydCIuCj4gaGludDogRGlzYWJsZSB0aGlzIG1lc3NhZ2Ugd2l0aCAiZ2l0IGNvbmZpZyBhZHZpY2UubWVyZ2VDb25mbGljdCBmYWxzZSIKPiAKPiBgYGA8L2lzc3VlX2Rlc2NyaXB0aW9uPgo+IAo+IDxhZ2VudF9pbnN0cnVjdGlvbnM+Q2FuIHlvdSBjcmVhdGUgYSBjbGVhbiBjaGVycnktcGljayBmb3IgdGhlIFBSIHRoYXQgZmFpbGVkIHRvIGJhY2twb3J0PzwvYWdlbnRfaW5zdHJ1Y3Rpb25zPgo+IAo+ICMjIENvbW1lbnRzIG9uIHRoZSBJc3N1ZSAoeW91IGFyZSBAY29waWxvdCBpbiB0aGlzIHNlY3Rpb24pCj4gCj4gPGNvbW1lbnRzPgo+IDwvY29tbWVudHM+Cj4gCgoKPC9kZXRhaWxzPgoKCgo8IS0tIFNUQVJUIENPUElMT1QgQ09ESU5HIEFHRU5UIFNVRkZJWCAtLT4KCi0gRml4ZXMgdmV4eGhvc3QvYXRtb3NwaGVyZSMzNjA0Cgo8IS0tIFNUQVJUIENPUElMT1QgQ09ESU5HIEFHRU5UIFRJUFMgLS0+Ci0tLQoK8J+SoSBZb3UgY2FuIG1ha2UgQ29waWxvdCBzbWFydGVyIGJ5IHNldHRpbmcgdXAgY3VzdG9tIGluc3RydWN0aW9ucywgY3VzdG9taXppbmcgaXRzIGRldmVsb3BtZW50IGVudmlyb25tZW50IGFuZCBjb25maWd1cmluZyBNb2RlbCBDb250ZXh0IFByb3RvY29sIChNQ1ApIHNlcnZlcnMuIExlYXJuIG1vcmUgW0NvcGlsb3QgY29kaW5nIGFnZW50IHRpcHNdKGh0dHBzOi8vZ2guaW8vY29waWxvdC1jb2RpbmctYWdlbnQtdGlwcykgaW4gdGhlIGRvY3Mu
      patchset: 67f11c99d45411341139b5aab3da1879990ef1ce
      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: 571c0efa3491d12ecb8fc1169c510716d55c0fc2
          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: 571c0efa3491d12ecb8fc1169c510716d55c0fc2
          untrusted/project_3/github.com/vexxhost/atmosphere:
            canonical_name: github.com/vexxhost/atmosphere
            checkout: stable/2025.1
            commit: 67f11c99d45411341139b5aab3da1879990ef1ce
          untrusted/project_4/opendev.org/openstack/openstack-helm:
            canonical_name: opendev.org/openstack/openstack-helm
            checkout: master
            commit: 0693074879fd8de267774e7bc45b7b4c6341c490
        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: stable/2025.1
          checkout_description: zuul branch
          commit: 67f11c99d45411341139b5aab3da1879990ef1ce
          name: vexxhost/atmosphere
          required: false
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
      ref: refs/pull/3615/head
      resources: {}
      tenant: oss
      timeout: 1800
      topic: null
      voting: true
