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.96
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      atmosphere_image_prefix: harbor.atmosphere.dev/
      atmosphere_network_backend: openvswitch
      barbican_helm_values:
        pod:
          replicas:
            api: 1
      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
      ceph_version: 18.2.7
      cilium_helm_values:
        operator:
          replicas: 1
      cinder_helm_values:
        conf:
          ceph:
            pools:
              backup:
                replication: 1
              cinder.volumes:
                replication: 1
          cinder:
            DEFAULT:
              osapi_volume_workers: 2
        pod:
          replicas:
            api: 1
            scheduler: 1
      cluster_issuer_type: self-signed
      coredns_helm_values:
        replicaCount: 1
      csi_driver: local-path-provisioner
      glance_helm_values:
        conf:
          glance:
            DEFAULT:
              workers: 2
            glance_store:
              rbd_store_replication: 1
        pod:
          replicas:
            api: 1
      glance_images:
      - container_format: bare
        disk_format: raw
        is_public: true
        min_disk: 1
        name: cirros
        url: http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img
      heat_helm_values:
        conf:
          heat:
            DEFAULT:
              num_engine_workers: 2
            heat_api:
              workers: 2
            heat_api_cfn:
              workers: 2
            heat_api_cloudwatch:
              workers: 2
        pod:
          replicas:
            api: 1
            cfn: 1
            cloudwatch: 1
            engine: 1
      horizon_helm_values:
        pod:
          replicas:
            server: 1
      ingress_nginx_helm_values:
        controller:
          config:
            worker-processes: 2
      keystone_helm_values:
        pod:
          replicas:
            api: 1
      kube_vip_address: 172.17.0.100
      kube_vip_interface: '{{ ansible_facts[''default_ipv4''].interface }}'
      kubernetes_hostname: '{{ ansible_facts[''default_ipv4''].address }}'
      kubernetes_keepalived_interface: br-mgmt
      magnum_helm_values:
        conf:
          magnum:
            api:
              workers: 2
            conductor:
              workers: 2
        pod:
          replicas:
            api: 1
            conductor: 1
      magnum_image_disk_format: qcow2
      magnum_images: '[ {{ _magnum_images[-1] }} ]'
      manila_helm_values:
        conf:
          manila:
            DEFAULT:
              osapi_share_workers: 2
        pod:
          replicas:
            api: 1
            scheduler: 1
      molecule_install_collection_siblings: true
      molecule_scenario: aio
      neutron_helm_values:
        conf:
          neutron:
            DEFAULT:
              api_workers: 2
              metadata_workers: 2
              rpc_workers: 2
        pod:
          replicas:
            rpc_server: 1
            server: 1
      nodepool:
        az: yul2
        cloud: public
        external_id: 0ae454b4-36f2-4677-b540-85123a89c099
        host_id: 44316d8f39b723c689bef9dc3ce595e26433ea9fbabc63510418e839
        interface_ip: 162.253.55.96
        label: ubuntu-jammy-16
        node_properties: {}
        private_ipv4: 162.253.55.96
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.96
        public_ipv6: 2604:e100:1:0:f816:3eff:fef9:55fe
        region: ca-ymq-1
        slot: null
      nova_helm_values:
        conf:
          nova:
            DEFAULT:
              metadata_workers: 2
              osapi_compute_workers: 2
            conductor:
              workers: 2
            scheduler:
              workers: 2
        pod:
          replicas:
            api_metadata: 1
            conductor: 1
            novncproxy: 1
            osapi: 1
            scheduler: 1
            spiceproxy: 1
      octavia_helm_values:
        conf:
          octavia:
            controller_worker:
              workers: 2
          octavia_api_uwsgi:
            uwsgi:
              processes: 2
        pod:
          replicas:
            api: 1
            housekeeping: 1
            worker: 1
      ovn_helm_values:
        conf:
          auto_bridge_add:
            br-ex: null
        pod:
          replicas:
            ovn_northd: 1
            ovn_ovsdb_nb: 1
            ovn_ovsdb_sb: 1
      percona_xtradb_cluster_spec:
        allowUnsafeConfigurations: true
        haproxy:
          size: 1
        pxc:
          size: 1
      placement_helm_values:
        conf:
          placement_api_uwsgi:
            uwsgi:
              processes: 2
        pod:
          replicas:
            api: 1
      rook_ceph_cluster_radosgw_spec:
        dataPool:
          failureDomain: osd
        gateway:
          instances: 1
        metadataPool:
          failureDomain: osd
      senlin_helm_values:
        pod:
          replicas:
            api: 1
            conductor: 1
            engine: 1
            health_manager: 1
      staffeln_helm_values:
        pod:
          replicas:
            api: 1
            conductor: 1
      valkey_helm_values:
        replica:
          replicaCount: 1
      zuul_node:
        az: yul2
        cloud: public
        external_id: 0ae454b4-36f2-4677-b540-85123a89c099
        host_id: 44316d8f39b723c689bef9dc3ce595e26433ea9fbabc63510418e839
        interface_ip: 162.253.55.96
        label: ubuntu-jammy-16
        node_properties: {}
        private_ipv4: 162.253.55.96
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.96
        public_ipv6: 2604:e100:1:0:f816:3eff:fef9:55fe
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    atmosphere_image_prefix: harbor.atmosphere.dev/
    atmosphere_network_backend: openvswitch
    barbican_helm_values:
      pod:
        replicas:
          api: 1
    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
    ceph_version: 18.2.7
    cilium_helm_values:
      operator:
        replicas: 1
    cinder_helm_values:
      conf:
        ceph:
          pools:
            backup:
              replication: 1
            cinder.volumes:
              replication: 1
        cinder:
          DEFAULT:
            osapi_volume_workers: 2
      pod:
        replicas:
          api: 1
          scheduler: 1
    cluster_issuer_type: self-signed
    coredns_helm_values:
      replicaCount: 1
    csi_driver: local-path-provisioner
    glance_helm_values:
      conf:
        glance:
          DEFAULT:
            workers: 2
          glance_store:
            rbd_store_replication: 1
      pod:
        replicas:
          api: 1
    glance_images:
    - container_format: bare
      disk_format: raw
      is_public: true
      min_disk: 1
      name: cirros
      url: http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img
    heat_helm_values:
      conf:
        heat:
          DEFAULT:
            num_engine_workers: 2
          heat_api:
            workers: 2
          heat_api_cfn:
            workers: 2
          heat_api_cloudwatch:
            workers: 2
      pod:
        replicas:
          api: 1
          cfn: 1
          cloudwatch: 1
          engine: 1
    horizon_helm_values:
      pod:
        replicas:
          server: 1
    ingress_nginx_helm_values:
      controller:
        config:
          worker-processes: 2
    keystone_helm_values:
      pod:
        replicas:
          api: 1
    kube_vip_address: 172.17.0.100
    kube_vip_interface: '{{ ansible_facts[''default_ipv4''].interface }}'
    kubernetes_hostname: '{{ ansible_facts[''default_ipv4''].address }}'
    kubernetes_keepalived_interface: br-mgmt
    magnum_helm_values:
      conf:
        magnum:
          api:
            workers: 2
          conductor:
            workers: 2
      pod:
        replicas:
          api: 1
          conductor: 1
    magnum_image_disk_format: qcow2
    magnum_images: '[ {{ _magnum_images[-1] }} ]'
    manila_helm_values:
      conf:
        manila:
          DEFAULT:
            osapi_share_workers: 2
      pod:
        replicas:
          api: 1
          scheduler: 1
    molecule_install_collection_siblings: true
    molecule_scenario: aio
    neutron_helm_values:
      conf:
        neutron:
          DEFAULT:
            api_workers: 2
            metadata_workers: 2
            rpc_workers: 2
      pod:
        replicas:
          rpc_server: 1
          server: 1
    nova_helm_values:
      conf:
        nova:
          DEFAULT:
            metadata_workers: 2
            osapi_compute_workers: 2
          conductor:
            workers: 2
          scheduler:
            workers: 2
      pod:
        replicas:
          api_metadata: 1
          conductor: 1
          novncproxy: 1
          osapi: 1
          scheduler: 1
          spiceproxy: 1
    octavia_helm_values:
      conf:
        octavia:
          controller_worker:
            workers: 2
        octavia_api_uwsgi:
          uwsgi:
            processes: 2
      pod:
        replicas:
          api: 1
          housekeeping: 1
          worker: 1
    ovn_helm_values:
      conf:
        auto_bridge_add:
          br-ex: null
      pod:
        replicas:
          ovn_northd: 1
          ovn_ovsdb_nb: 1
          ovn_ovsdb_sb: 1
    percona_xtradb_cluster_spec:
      allowUnsafeConfigurations: true
      haproxy:
        size: 1
      pxc:
        size: 1
    placement_helm_values:
      conf:
        placement_api_uwsgi:
          uwsgi:
            processes: 2
      pod:
        replicas:
          api: 1
    rook_ceph_cluster_radosgw_spec:
      dataPool:
        failureDomain: osd
      gateway:
        instances: 1
      metadataPool:
        failureDomain: osd
    senlin_helm_values:
      pod:
        replicas:
          api: 1
          conductor: 1
          engine: 1
          health_manager: 1
    staffeln_helm_values:
      pod:
        replicas:
          api: 1
          conductor: 1
    valkey_helm_values:
      replica:
        replicaCount: 1
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/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-jobs/zuul.d/jobs.yaml@main#1>'
      - '<Job atmosphere-molecule-aio explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/atmosphere-zuul-jobs/zuul.d/jobs.yaml@main#75>'
      - '<Job atmosphere-molecule-aio-openvswitch explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/atmosphere-zuul-jobs/zuul.d/jobs.yaml@main#264>'
      - '<Job atmosphere-molecule-aio-openvswitch explicit: None implied: None source:
        vexxhost/atmosphere-zuul-jobs/zuul.d/project-templates.yaml@main#1>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 0772a718f2764b0181fe1ccaa94640e2
      build_refs:
      - branch: main
        change: '2851'
        change_message: 'feat(cinder): support active-active volume and backup services


          ## Summary


          - run Cinder volume and backup workers as StatefulSets with stable, unique
          host identities

          - configure the default RBD volume services as a three-replica Cinder Active-Active
          cluster

          - use the existing TLS-enabled Valkey Sentinel deployment as the maintained
          Tooz coordination backend

          - retain a documented single-replica escape hatch for storage drivers without
          Active-Active support


          This replaces the earlier Kubernetes/Sherlock locking approach. Sherlock
          is unmaintained, the old chart changes duplicated broad Kubernetes RBAC,
          and the static Cinder host value caused multiple replicas to register as
          the same service.


          ## Dependencies


          - Image support: https://github.com/vexxhost/docker-cinder/pull/1319

          - Adapted volume StatefulSet backport: https://review.opendev.org/c/openstack/openstack-helm/+/991510


          The image PR must merge and Atmosphere''s pinned Cinder image digest must
          be updated before this change is merged.


          For integration testing, this PR currently pins the immutable feature image

          `ghcr.io/vexxhost/cinder:feat-cinder-redis-coordination@sha256:b874dbc2a8f1f9e6f40ecc061f68eda9be5f4acb69e155cc216691a0258f8f81`,

          which contains the image PR''s exact multi-architecture build. After the
          image PR merges, replace this with the resulting `main` image digest before
          merging Atmosphere.


          ## Validation


          - `go test ./roles/cinder`

          - `helm unittest -f ''../../roles/cinder/tests/*.yaml'' charts/cinder` (4
          suites, 9 tests)

          - `helm lint charts/cinder`

          - Cinder-focused chart-vendor reconstruction and patch application

          - `ansible-lint --offline` on the changed Cinder YAML and release note

          - rendered dynamic/static Cinder volume and backup scripts checked with
          `bash -n`

          - exact Tooz Redis Sentinel URL parsing checked against Tooz 9.0.0 and redis-py
          8.0.1

          - standalone Cinder-role defaults rendered without relying on variables
          from the separate Valkey play


          Full local pre-commit bootstrap is blocked by the workstation''s Python
          3.8/setuptools handling of current `project.license` metadata. `reno lint`
          also reaches an unrelated existing duplicate release-note UID; this note
          parses and has a unique UID.


          Depends-On: https://github.com/vexxhost/docker-cinder/pull/1319

          '
        change_url: https://github.com/vexxhost/atmosphere/pull/2851
        commit_id: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
        patchset: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      buildset: faad79fb9eaf47e1beb4e4c6ab2c623b
      buildset_refs:
      - branch: main
        change: '2851'
        change_message: 'feat(cinder): support active-active volume and backup services


          ## Summary


          - run Cinder volume and backup workers as StatefulSets with stable, unique
          host identities

          - configure the default RBD volume services as a three-replica Cinder Active-Active
          cluster

          - use the existing TLS-enabled Valkey Sentinel deployment as the maintained
          Tooz coordination backend

          - retain a documented single-replica escape hatch for storage drivers without
          Active-Active support


          This replaces the earlier Kubernetes/Sherlock locking approach. Sherlock
          is unmaintained, the old chart changes duplicated broad Kubernetes RBAC,
          and the static Cinder host value caused multiple replicas to register as
          the same service.


          ## Dependencies


          - Image support: https://github.com/vexxhost/docker-cinder/pull/1319

          - Adapted volume StatefulSet backport: https://review.opendev.org/c/openstack/openstack-helm/+/991510


          The image PR must merge and Atmosphere''s pinned Cinder image digest must
          be updated before this change is merged.


          For integration testing, this PR currently pins the immutable feature image

          `ghcr.io/vexxhost/cinder:feat-cinder-redis-coordination@sha256:b874dbc2a8f1f9e6f40ecc061f68eda9be5f4acb69e155cc216691a0258f8f81`,

          which contains the image PR''s exact multi-architecture build. After the
          image PR merges, replace this with the resulting `main` image digest before
          merging Atmosphere.


          ## Validation


          - `go test ./roles/cinder`

          - `helm unittest -f ''../../roles/cinder/tests/*.yaml'' charts/cinder` (4
          suites, 9 tests)

          - `helm lint charts/cinder`

          - Cinder-focused chart-vendor reconstruction and patch application

          - `ansible-lint --offline` on the changed Cinder YAML and release note

          - rendered dynamic/static Cinder volume and backup scripts checked with
          `bash -n`

          - exact Tooz Redis Sentinel URL parsing checked against Tooz 9.0.0 and redis-py
          8.0.1

          - standalone Cinder-role defaults rendered without relying on variables
          from the separate Valkey play


          Full local pre-commit bootstrap is blocked by the workstation''s Python
          3.8/setuptools handling of current `project.license` metadata. `reno lint`
          also reaches an unrelated existing duplicate release-note UID; this note
          parses and has a unique UID.


          Depends-On: https://github.com/vexxhost/docker-cinder/pull/1319

          '
        change_url: https://github.com/vexxhost/atmosphere/pull/2851
        commit_id: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
        patchset: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          name: vexxhost/atmosphere
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
        src_dir: src/github.com/vexxhost/atmosphere
        topic: null
      change: '2851'
      change_message: 'feat(cinder): support active-active volume and backup services


        ## Summary


        - run Cinder volume and backup workers as StatefulSets with stable, unique
        host identities

        - configure the default RBD volume services as a three-replica Cinder Active-Active
        cluster

        - use the existing TLS-enabled Valkey Sentinel deployment as the maintained
        Tooz coordination backend

        - retain a documented single-replica escape hatch for storage drivers without
        Active-Active support


        This replaces the earlier Kubernetes/Sherlock locking approach. Sherlock is
        unmaintained, the old chart changes duplicated broad Kubernetes RBAC, and
        the static Cinder host value caused multiple replicas to register as the same
        service.


        ## Dependencies


        - Image support: https://github.com/vexxhost/docker-cinder/pull/1319

        - Adapted volume StatefulSet backport: https://review.opendev.org/c/openstack/openstack-helm/+/991510


        The image PR must merge and Atmosphere''s pinned Cinder image digest must
        be updated before this change is merged.


        For integration testing, this PR currently pins the immutable feature image

        `ghcr.io/vexxhost/cinder:feat-cinder-redis-coordination@sha256:b874dbc2a8f1f9e6f40ecc061f68eda9be5f4acb69e155cc216691a0258f8f81`,

        which contains the image PR''s exact multi-architecture build. After the image
        PR merges, replace this with the resulting `main` image digest before merging
        Atmosphere.


        ## Validation


        - `go test ./roles/cinder`

        - `helm unittest -f ''../../roles/cinder/tests/*.yaml'' charts/cinder` (4
        suites, 9 tests)

        - `helm lint charts/cinder`

        - Cinder-focused chart-vendor reconstruction and patch application

        - `ansible-lint --offline` on the changed Cinder YAML and release note

        - rendered dynamic/static Cinder volume and backup scripts checked with `bash
        -n`

        - exact Tooz Redis Sentinel URL parsing checked against Tooz 9.0.0 and redis-py
        8.0.1

        - standalone Cinder-role defaults rendered without relying on variables from
        the separate Valkey play


        Full local pre-commit bootstrap is blocked by the workstation''s Python 3.8/setuptools
        handling of current `project.license` metadata. `reno lint` also reaches an
        unrelated existing duplicate release-note UID; this note parses and has a
        unique UID.


        Depends-On: https://github.com/vexxhost/docker-cinder/pull/1319

        '
      change_url: https://github.com/vexxhost/atmosphere/pull/2851
      child_jobs: []
      commit_id: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
      event_id: 1eeb94b0-a5c2-11f1-9bb0-558340f77e91
      executor:
        hostname: 2d72f0692154
        inventory_file: /var/lib/zuul/builds/0772a718f2764b0181fe1ccaa94640e2/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/0772a718f2764b0181fe1ccaa94640e2/work/logs
        result_data_file: /var/lib/zuul/builds/0772a718f2764b0181fe1ccaa94640e2/work/results.json
        src_root: /var/lib/zuul/builds/0772a718f2764b0181fe1ccaa94640e2/work/src
        work_root: /var/lib/zuul/builds/0772a718f2764b0181fe1ccaa94640e2/work
      include_vars: []
      items:
      - branch: main
        change: '1319'
        change_message: 'feat(cinder): add Redis coordination support


          ## Summary


          - install the maintained Tooz Redis extra in the Cinder image

          - enable Redis/Valkey Sentinel coordination for vexxhost/atmosphere#2851


          ## Validation


          - resolved `tooz[redis]` with Tooz 6.3.0 and redis-py 6.1.1

          - exercised the Atmosphere Sentinel URL through Tooz and verified TLS certificate
          options are passed to both Sentinel and the selected primary


          Related: https://github.com/vexxhost/atmosphere/pull/2851'
        change_url: https://github.com/vexxhost/docker-cinder/pull/1319
        commit_id: 49fb89678e66929ab90f8909f5644a5560b55a26
        patchset: 49fb89678e66929ab90f8909f5644a5560b55a26
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/docker-cinder
          name: vexxhost/docker-cinder
          short_name: docker-cinder
          src_dir: src/github.com/vexxhost/docker-cinder
        topic: null
      - branch: main
        change: '2851'
        change_message: 'feat(cinder): support active-active volume and backup services


          ## Summary


          - run Cinder volume and backup workers as StatefulSets with stable, unique
          host identities

          - configure the default RBD volume services as a three-replica Cinder Active-Active
          cluster

          - use the existing TLS-enabled Valkey Sentinel deployment as the maintained
          Tooz coordination backend

          - retain a documented single-replica escape hatch for storage drivers without
          Active-Active support


          This replaces the earlier Kubernetes/Sherlock locking approach. Sherlock
          is unmaintained, the old chart changes duplicated broad Kubernetes RBAC,
          and the static Cinder host value caused multiple replicas to register as
          the same service.


          ## Dependencies


          - Image support: https://github.com/vexxhost/docker-cinder/pull/1319

          - Adapted volume StatefulSet backport: https://review.opendev.org/c/openstack/openstack-helm/+/991510


          The image PR must merge and Atmosphere''s pinned Cinder image digest must
          be updated before this change is merged.


          For integration testing, this PR currently pins the immutable feature image

          `ghcr.io/vexxhost/cinder:feat-cinder-redis-coordination@sha256:b874dbc2a8f1f9e6f40ecc061f68eda9be5f4acb69e155cc216691a0258f8f81`,

          which contains the image PR''s exact multi-architecture build. After the
          image PR merges, replace this with the resulting `main` image digest before
          merging Atmosphere.


          ## Validation


          - `go test ./roles/cinder`

          - `helm unittest -f ''../../roles/cinder/tests/*.yaml'' charts/cinder` (4
          suites, 9 tests)

          - `helm lint charts/cinder`

          - Cinder-focused chart-vendor reconstruction and patch application

          - `ansible-lint --offline` on the changed Cinder YAML and release note

          - rendered dynamic/static Cinder volume and backup scripts checked with
          `bash -n`

          - exact Tooz Redis Sentinel URL parsing checked against Tooz 9.0.0 and redis-py
          8.0.1

          - standalone Cinder-role defaults rendered without relying on variables
          from the separate Valkey play


          Full local pre-commit bootstrap is blocked by the workstation''s Python
          3.8/setuptools handling of current `project.license` metadata. `reno lint`
          also reaches an unrelated existing duplicate release-note UID; this note
          parses and has a unique UID.


          Depends-On: https://github.com/vexxhost/docker-cinder/pull/1319

          '
        change_url: https://github.com/vexxhost/atmosphere/pull/2851
        commit_id: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
        patchset: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
        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-aio-openvswitch
      jobtags: []
      max_attempts: 3
      message: ZmVhdChjaW5kZXIpOiBzdXBwb3J0IGFjdGl2ZS1hY3RpdmUgdm9sdW1lIGFuZCBiYWNrdXAgc2VydmljZXMKCiMjIFN1bW1hcnkKCi0gcnVuIENpbmRlciB2b2x1bWUgYW5kIGJhY2t1cCB3b3JrZXJzIGFzIFN0YXRlZnVsU2V0cyB3aXRoIHN0YWJsZSwgdW5pcXVlIGhvc3QgaWRlbnRpdGllcwotIGNvbmZpZ3VyZSB0aGUgZGVmYXVsdCBSQkQgdm9sdW1lIHNlcnZpY2VzIGFzIGEgdGhyZWUtcmVwbGljYSBDaW5kZXIgQWN0aXZlLUFjdGl2ZSBjbHVzdGVyCi0gdXNlIHRoZSBleGlzdGluZyBUTFMtZW5hYmxlZCBWYWxrZXkgU2VudGluZWwgZGVwbG95bWVudCBhcyB0aGUgbWFpbnRhaW5lZCBUb296IGNvb3JkaW5hdGlvbiBiYWNrZW5kCi0gcmV0YWluIGEgZG9jdW1lbnRlZCBzaW5nbGUtcmVwbGljYSBlc2NhcGUgaGF0Y2ggZm9yIHN0b3JhZ2UgZHJpdmVycyB3aXRob3V0IEFjdGl2ZS1BY3RpdmUgc3VwcG9ydAoKVGhpcyByZXBsYWNlcyB0aGUgZWFybGllciBLdWJlcm5ldGVzL1NoZXJsb2NrIGxvY2tpbmcgYXBwcm9hY2guIFNoZXJsb2NrIGlzIHVubWFpbnRhaW5lZCwgdGhlIG9sZCBjaGFydCBjaGFuZ2VzIGR1cGxpY2F0ZWQgYnJvYWQgS3ViZXJuZXRlcyBSQkFDLCBhbmQgdGhlIHN0YXRpYyBDaW5kZXIgaG9zdCB2YWx1ZSBjYXVzZWQgbXVsdGlwbGUgcmVwbGljYXMgdG8gcmVnaXN0ZXIgYXMgdGhlIHNhbWUgc2VydmljZS4KCiMjIERlcGVuZGVuY2llcwoKLSBJbWFnZSBzdXBwb3J0OiBodHRwczovL2dpdGh1Yi5jb20vdmV4eGhvc3QvZG9ja2VyLWNpbmRlci9wdWxsLzEzMTkKLSBBZGFwdGVkIHZvbHVtZSBTdGF0ZWZ1bFNldCBiYWNrcG9ydDogaHR0cHM6Ly9yZXZpZXcub3BlbmRldi5vcmcvYy9vcGVuc3RhY2svb3BlbnN0YWNrLWhlbG0vKy85OTE1MTAKClRoZSBpbWFnZSBQUiBtdXN0IG1lcmdlIGFuZCBBdG1vc3BoZXJlJ3MgcGlubmVkIENpbmRlciBpbWFnZSBkaWdlc3QgbXVzdCBiZSB1cGRhdGVkIGJlZm9yZSB0aGlzIGNoYW5nZSBpcyBtZXJnZWQuCgpGb3IgaW50ZWdyYXRpb24gdGVzdGluZywgdGhpcyBQUiBjdXJyZW50bHkgcGlucyB0aGUgaW1tdXRhYmxlIGZlYXR1cmUgaW1hZ2UKYGdoY3IuaW8vdmV4eGhvc3QvY2luZGVyOmZlYXQtY2luZGVyLXJlZGlzLWNvb3JkaW5hdGlvbkBzaGEyNTY6Yjg3NGRiYzJhOGYxZjllNmY0MGVjYzA2MWY2OGVkYTliZTVmNGFjYjY5ZTE1NWNjMjE2NjkxYTAyNThmOGY4MWAsCndoaWNoIGNvbnRhaW5zIHRoZSBpbWFnZSBQUidzIGV4YWN0IG11bHRpLWFyY2hpdGVjdHVyZSBidWlsZC4gQWZ0ZXIgdGhlIGltYWdlIFBSIG1lcmdlcywgcmVwbGFjZSB0aGlzIHdpdGggdGhlIHJlc3VsdGluZyBgbWFpbmAgaW1hZ2UgZGlnZXN0IGJlZm9yZSBtZXJnaW5nIEF0bW9zcGhlcmUuCgojIyBWYWxpZGF0aW9uCgotIGBnbyB0ZXN0IC4vcm9sZXMvY2luZGVyYAotIGBoZWxtIHVuaXR0ZXN0IC1mICcuLi8uLi9yb2xlcy9jaW5kZXIvdGVzdHMvKi55YW1sJyBjaGFydHMvY2luZGVyYCAoNCBzdWl0ZXMsIDkgdGVzdHMpCi0gYGhlbG0gbGludCBjaGFydHMvY2luZGVyYAotIENpbmRlci1mb2N1c2VkIGNoYXJ0LXZlbmRvciByZWNvbnN0cnVjdGlvbiBhbmQgcGF0Y2ggYXBwbGljYXRpb24KLSBgYW5zaWJsZS1saW50IC0tb2ZmbGluZWAgb24gdGhlIGNoYW5nZWQgQ2luZGVyIFlBTUwgYW5kIHJlbGVhc2Ugbm90ZQotIHJlbmRlcmVkIGR5bmFtaWMvc3RhdGljIENpbmRlciB2b2x1bWUgYW5kIGJhY2t1cCBzY3JpcHRzIGNoZWNrZWQgd2l0aCBgYmFzaCAtbmAKLSBleGFjdCBUb296IFJlZGlzIFNlbnRpbmVsIFVSTCBwYXJzaW5nIGNoZWNrZWQgYWdhaW5zdCBUb296IDkuMC4wIGFuZCByZWRpcy1weSA4LjAuMQotIHN0YW5kYWxvbmUgQ2luZGVyLXJvbGUgZGVmYXVsdHMgcmVuZGVyZWQgd2l0aG91dCByZWx5aW5nIG9uIHZhcmlhYmxlcyBmcm9tIHRoZSBzZXBhcmF0ZSBWYWxrZXkgcGxheQoKRnVsbCBsb2NhbCBwcmUtY29tbWl0IGJvb3RzdHJhcCBpcyBibG9ja2VkIGJ5IHRoZSB3b3Jrc3RhdGlvbidzIFB5dGhvbiAzLjgvc2V0dXB0b29scyBoYW5kbGluZyBvZiBjdXJyZW50IGBwcm9qZWN0LmxpY2Vuc2VgIG1ldGFkYXRhLiBgcmVubyBsaW50YCBhbHNvIHJlYWNoZXMgYW4gdW5yZWxhdGVkIGV4aXN0aW5nIGR1cGxpY2F0ZSByZWxlYXNlLW5vdGUgVUlEOyB0aGlzIG5vdGUgcGFyc2VzIGFuZCBoYXMgYSB1bmlxdWUgVUlELgoKRGVwZW5kcy1PbjogaHR0cHM6Ly9naXRodWIuY29tL3ZleHhob3N0L2RvY2tlci1jaW5kZXIvcHVsbC8xMzE5Cg==
      patchset: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/vexxhost/zuul-config:
            canonical_name: github.com/vexxhost/zuul-config
            checkout: main
            commit: 298983cd1253e6833abdb49d87d912527e0e6597
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 9b835d0194f05a1b60885a2bbc740d1361c5a672
          trusted/project_2/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: c286bf94224b5660b8e49e9a058289e61062a9a0
          untrusted/project_0/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: c286bf94224b5660b8e49e9a058289e61062a9a0
          untrusted/project_1/github.com/vexxhost/zuul-config:
            canonical_name: github.com/vexxhost/zuul-config
            checkout: main
            commit: 298983cd1253e6833abdb49d87d912527e0e6597
          untrusted/project_2/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 9b835d0194f05a1b60885a2bbc740d1361c5a672
          untrusted/project_3/github.com/vexxhost/atmosphere-zuul-jobs:
            canonical_name: github.com/vexxhost/atmosphere-zuul-jobs
            checkout: main
            commit: acb8e36a801f3b93fdd30dec43a15b6f8d809c2f
          untrusted/project_4/opendev.org/openstack/openstack-helm:
            canonical_name: opendev.org/openstack/openstack-helm
            checkout: master
            commit: 6697f8df7f6b0dcc80625b8f8cf2c7c2fa7dd09c
        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_playbooks:
        - path: untrusted/project_3/github.com/vexxhost/atmosphere-zuul-jobs/playbooks/molecule/post.yml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/post_playbook_0/role_1/openstack-helm
            link_target: untrusted/project_4/opendev.org/openstack/openstack-helm
            role_path: ansible/post_playbook_0/role_1/openstack-helm/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/post_playbook_0/role_3/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_0/role_3/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_0/role_4/zuul-jobs
            link_target: untrusted/project_0/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_0/role_4/zuul-jobs/roles
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/post.yaml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/post_playbook_1/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_1/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_1/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_1/role_2/zuul-jobs/roles
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/post-logs.yaml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/post_playbook_2/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_2/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_2/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_2/role_2/zuul-jobs/roles
        pre_playbooks:
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/pre.yaml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/pre_playbook_0/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_0/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_0/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_0/role_2/zuul-jobs/roles
        - path: untrusted/project_0/github.com/vexxhost/zuul-jobs/playbooks/molecule/pre.yaml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/pre_playbook_1/role_1/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_1/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/pre_playbook_1/role_2/zuul-jobs
            link_target: untrusted/project_0/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_1/role_2/zuul-jobs/roles
        - path: untrusted/project_3/github.com/vexxhost/atmosphere-zuul-jobs/playbooks/molecule/pre.yml
          roles:
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/pre_playbook_2/role_1/openstack-helm
            link_target: untrusted/project_4/opendev.org/openstack/openstack-helm
            role_path: ansible/pre_playbook_2/role_1/openstack-helm/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/pre_playbook_2/role_3/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_2/role_3/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_2/role_4/zuul-jobs
            link_target: untrusted/project_0/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_2/role_4/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/ansible-collections/ansible.netcommon:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/ansible.netcommon
          checkout: main
          checkout_description: zuul branch
          commit: 3c1482f295d0746033db268aad986bc1648d20f8
          name: ansible-collections/ansible.netcommon
          required: true
          short_name: ansible.netcommon
          src_dir: src/github.com/ansible-collections/ansible.netcommon
        github.com/ansible-collections/ansible.posix:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/ansible.posix
          checkout: main
          checkout_description: zuul branch
          commit: 20699d7184e21cec7be80212c96a6cbe373f718d
          name: ansible-collections/ansible.posix
          required: true
          short_name: ansible.posix
          src_dir: src/github.com/ansible-collections/ansible.posix
        github.com/ansible-collections/ansible.utils:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/ansible.utils
          checkout: main
          checkout_description: zuul branch
          commit: eb828fcea5d1edeba76cd8efee4f35520b7b8fb5
          name: ansible-collections/ansible.utils
          required: true
          short_name: ansible.utils
          src_dir: src/github.com/ansible-collections/ansible.utils
        github.com/ansible-collections/community.crypto:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/community.crypto
          checkout: main
          checkout_description: zuul branch
          commit: f443c1b56eb61ae4672ec5af8e15dbf6d9060c06
          name: ansible-collections/community.crypto
          required: true
          short_name: community.crypto
          src_dir: src/github.com/ansible-collections/community.crypto
        github.com/ansible-collections/community.general:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/community.general
          checkout: main
          checkout_description: zuul branch
          commit: 60972bc7422ba42060695353ecb54a7c5a99eef0
          name: ansible-collections/community.general
          required: true
          short_name: community.general
          src_dir: src/github.com/ansible-collections/community.general
        github.com/ansible-collections/community.mysql:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/community.mysql
          checkout: main
          checkout_description: zuul branch
          commit: 4cf7a3176fbd07be43459f1366e8066381df6d97
          name: ansible-collections/community.mysql
          required: true
          short_name: community.mysql
          src_dir: src/github.com/ansible-collections/community.mysql
        github.com/ansible-collections/kubernetes.core:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/kubernetes.core
          checkout: main
          checkout_description: zuul branch
          commit: d9e0218dbae23a183aef829847dfeccf0e4e7535
          name: ansible-collections/kubernetes.core
          required: true
          short_name: kubernetes.core
          src_dir: src/github.com/ansible-collections/kubernetes.core
        github.com/vexxhost/ansible-collection-ceph:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/ansible-collection-ceph
          checkout: main
          checkout_description: zuul branch
          commit: 44a694a80e3179c28d75180baa1a56426f987257
          name: vexxhost/ansible-collection-ceph
          required: true
          short_name: ansible-collection-ceph
          src_dir: src/github.com/vexxhost/ansible-collection-ceph
        github.com/vexxhost/ansible-collection-containers:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/ansible-collection-containers
          checkout: main
          checkout_description: zuul branch
          commit: d22923ebd40c0fd5a345318c1db90d125fb5140f
          name: vexxhost/ansible-collection-containers
          required: true
          short_name: ansible-collection-containers
          src_dir: src/github.com/vexxhost/ansible-collection-containers
        github.com/vexxhost/ansible-collection-kubernetes:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/ansible-collection-kubernetes
          checkout: main
          checkout_description: zuul branch
          commit: 7ce96efcd4d44cbf184588dd146d08ce952b57bb
          name: vexxhost/ansible-collection-kubernetes
          required: true
          short_name: ansible-collection-kubernetes
          src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
        github.com/vexxhost/atmosphere:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere
          checkout: main
          checkout_description: zuul branch
          commit: 2b247855e363b4cd0ab14b6e38db8dc1026d9c86
          name: vexxhost/atmosphere
          required: false
          short_name: atmosphere
          src_dir: src/github.com/vexxhost/atmosphere
        github.com/vexxhost/atmosphere.common:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/atmosphere.common
          checkout: main
          checkout_description: zuul branch
          commit: d00ec7f88fdc7ca2ce504a7e19c4049986cdac86
          name: vexxhost/atmosphere.common
          required: true
          short_name: atmosphere.common
          src_dir: src/github.com/vexxhost/atmosphere.common
        github.com/vexxhost/docker-cinder:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/docker-cinder
          checkout: main
          checkout_description: zuul branch
          commit: 49fb89678e66929ab90f8909f5644a5560b55a26
          name: vexxhost/docker-cinder
          required: false
          short_name: docker-cinder
          src_dir: src/github.com/vexxhost/docker-cinder
        opendev.org/openstack/ansible-collections-openstack:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/ansible-collections-openstack
          checkout: master
          checkout_description: project default branch
          commit: ee88cc15b87221ecabb474c7c3d0feaf6e01a7fa
          name: openstack/ansible-collections-openstack
          required: true
          short_name: ansible-collections-openstack
          src_dir: src/opendev.org/openstack/ansible-collections-openstack
      ref: refs/pull/2851/head
      resources: {}
      tenant: oss
      timeout: 7200
      topic: null
      voting: true
