all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fea6:fea9
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      docker_namespace: osism
      docker_registry: osism.harbor.regio.digital
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 17bbad08-ebe4-458d-88af-0542d39d9193
        host_id: de4c9765152b8ccf16bcbbf90e33fb083884dc744cc344501046bc88
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fea6:fea9
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.102
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.12
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fea6:fea9
        region: null
        slot: null
      version_ceph: reef
  vars:
    docker_namespace: osism
    docker_registry: osism.harbor.regio.digital
    version_ceph: reef
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job container-image-ceph-ansible-build explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/container-image-ceph-ansible/.zuul.yaml@main#83>'
      - '<Job container-image-ceph-ansible-build-reef explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/container-image-ceph-ansible/.zuul.yaml@main#97>'
      - '<Job container-image-ceph-ansible-build-reef explicit: None implied: None
        source: osism/container-image-ceph-ansible/.zuul.yaml@main#162>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 6432875aacdc4fd5863b71896bef1ab2
      build_refs:
      - branch: main
        change: '690'
        change_message: "openstack_config: set require-min-compat-client on OSD map\n\n##
          Summary\n\n- Appends five tasks to `files/playbooks/tasks/openstack_config.yml`
          (after the cephx key block) that conditionally raise the Ceph OSD map `require-min-compat-client`
          to the release named by `ceph_require_min_compat_client`\n- Default value
          (`mimic`) is provided by the companion PR in `osism/defaults` (#284)\n\n**Why:**
          With the default Ceph compat level (luminous), Nova creates RBD clone v1
          clones that hold a protection lock on their parent snapshot. When Glance
          tries to delete the base image, `glance_store`'s RBD driver calls `unprotect_snap()`,
          which raises `ImageBusy` under clone v1 \u2014 surfaced as HTTP 409. Setting
          the minimum compat client to `mimic` enables RBD clone v2 cluster-wide:
          protection locks are no longer used, `unprotect_snap()` succeeds, and the
          deletion proceeds through `trash_move()` (introduced in glance_store 4.6.0).
          This fixes the two `tempest.api.image.v2.test_images_dependency.ImageDependencyTests`.\n\n**Implementation
          details:**\n- Assert task validates `ceph_require_min_compat_client` is
          a known release in `ceph_min_compat_client_order` (defined in `osism/defaults`)\n-
          Gathers minimal facts for the first monitor host (needed to build the `ceph-mon-<hostname>`
          container name)\n- Reads current OSD dump as JSON, evaluates ordering against
          the map \u2014 only raises the compat level, never lowers it\n- All tasks
          guarded by `ceph_require_min_compat_client | default('', true) | string
          | length > 0`; set to `''` to skip entirely\n\n**Side effects** (documented
          in `osism/defaults` variable comment):\n- Ceph clients older than mimic
          (Ubuntu 18.04 era) are rejected cluster-wide \u2014 hard gate\n- Glance
          image deletion with active RBD clones moves images to Ceph trash; space
          not reclaimed until all clones (Nova ephemeral disks) are gone\n- Effectively
          one-way on a live cluster once clone v2 objects exist\n\n**Insertion point:**
          `openstack_config.yml` runs in the `ceph-pools.yml` lifecycle step \u2014
          after the cluster is up and configured, before Glance and Nova are deployed.
          This is the correct pre-OpenStack window.\n\n## Test plan\n\n- [ ] Bedbox
          end-to-end run with both this PR and `osism/defaults` #284: `ImageDependencyTests.test_image_volume_server_snapshot_dependency`
          and `test_nova_image_snapshot_dependency` pass\n- [ ] Verify idempotency:
          re-running `ceph-pools.yml` on a cluster already at `mimic` produces no
          change\n- [ ] Once confirmed in CI, revert the `exclude.lst` workaround
          from testbed PR #2885\n\nCompanion PR: osism/defaults#284\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-image-ceph-ansible/pull/690
        commit_id: c3bacefde864b6cc1a6b5fb5725642952f728366
        patchset: c3bacefde864b6cc1a6b5fb5725642952f728366
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-ceph-ansible
          name: osism/container-image-ceph-ansible
          short_name: container-image-ceph-ansible
        src_dir: src/github.com/osism/container-image-ceph-ansible
        topic: null
      buildset: e9d3b0a5f23244d691a283a196d25916
      buildset_refs:
      - branch: main
        change: '690'
        change_message: "openstack_config: set require-min-compat-client on OSD map\n\n##
          Summary\n\n- Appends five tasks to `files/playbooks/tasks/openstack_config.yml`
          (after the cephx key block) that conditionally raise the Ceph OSD map `require-min-compat-client`
          to the release named by `ceph_require_min_compat_client`\n- Default value
          (`mimic`) is provided by the companion PR in `osism/defaults` (#284)\n\n**Why:**
          With the default Ceph compat level (luminous), Nova creates RBD clone v1
          clones that hold a protection lock on their parent snapshot. When Glance
          tries to delete the base image, `glance_store`'s RBD driver calls `unprotect_snap()`,
          which raises `ImageBusy` under clone v1 \u2014 surfaced as HTTP 409. Setting
          the minimum compat client to `mimic` enables RBD clone v2 cluster-wide:
          protection locks are no longer used, `unprotect_snap()` succeeds, and the
          deletion proceeds through `trash_move()` (introduced in glance_store 4.6.0).
          This fixes the two `tempest.api.image.v2.test_images_dependency.ImageDependencyTests`.\n\n**Implementation
          details:**\n- Assert task validates `ceph_require_min_compat_client` is
          a known release in `ceph_min_compat_client_order` (defined in `osism/defaults`)\n-
          Gathers minimal facts for the first monitor host (needed to build the `ceph-mon-<hostname>`
          container name)\n- Reads current OSD dump as JSON, evaluates ordering against
          the map \u2014 only raises the compat level, never lowers it\n- All tasks
          guarded by `ceph_require_min_compat_client | default('', true) | string
          | length > 0`; set to `''` to skip entirely\n\n**Side effects** (documented
          in `osism/defaults` variable comment):\n- Ceph clients older than mimic
          (Ubuntu 18.04 era) are rejected cluster-wide \u2014 hard gate\n- Glance
          image deletion with active RBD clones moves images to Ceph trash; space
          not reclaimed until all clones (Nova ephemeral disks) are gone\n- Effectively
          one-way on a live cluster once clone v2 objects exist\n\n**Insertion point:**
          `openstack_config.yml` runs in the `ceph-pools.yml` lifecycle step \u2014
          after the cluster is up and configured, before Glance and Nova are deployed.
          This is the correct pre-OpenStack window.\n\n## Test plan\n\n- [ ] Bedbox
          end-to-end run with both this PR and `osism/defaults` #284: `ImageDependencyTests.test_image_volume_server_snapshot_dependency`
          and `test_nova_image_snapshot_dependency` pass\n- [ ] Verify idempotency:
          re-running `ceph-pools.yml` on a cluster already at `mimic` produces no
          change\n- [ ] Once confirmed in CI, revert the `exclude.lst` workaround
          from testbed PR #2885\n\nCompanion PR: osism/defaults#284\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-image-ceph-ansible/pull/690
        commit_id: c3bacefde864b6cc1a6b5fb5725642952f728366
        patchset: c3bacefde864b6cc1a6b5fb5725642952f728366
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-ceph-ansible
          name: osism/container-image-ceph-ansible
          short_name: container-image-ceph-ansible
        src_dir: src/github.com/osism/container-image-ceph-ansible
        topic: null
      change: '690'
      change_message: "openstack_config: set require-min-compat-client on OSD map\n\n##
        Summary\n\n- Appends five tasks to `files/playbooks/tasks/openstack_config.yml`
        (after the cephx key block) that conditionally raise the Ceph OSD map `require-min-compat-client`
        to the release named by `ceph_require_min_compat_client`\n- Default value
        (`mimic`) is provided by the companion PR in `osism/defaults` (#284)\n\n**Why:**
        With the default Ceph compat level (luminous), Nova creates RBD clone v1 clones
        that hold a protection lock on their parent snapshot. When Glance tries to
        delete the base image, `glance_store`'s RBD driver calls `unprotect_snap()`,
        which raises `ImageBusy` under clone v1 \u2014 surfaced as HTTP 409. Setting
        the minimum compat client to `mimic` enables RBD clone v2 cluster-wide: protection
        locks are no longer used, `unprotect_snap()` succeeds, and the deletion proceeds
        through `trash_move()` (introduced in glance_store 4.6.0). This fixes the
        two `tempest.api.image.v2.test_images_dependency.ImageDependencyTests`.\n\n**Implementation
        details:**\n- Assert task validates `ceph_require_min_compat_client` is a
        known release in `ceph_min_compat_client_order` (defined in `osism/defaults`)\n-
        Gathers minimal facts for the first monitor host (needed to build the `ceph-mon-<hostname>`
        container name)\n- Reads current OSD dump as JSON, evaluates ordering against
        the map \u2014 only raises the compat level, never lowers it\n- All tasks
        guarded by `ceph_require_min_compat_client | default('', true) | string |
        length > 0`; set to `''` to skip entirely\n\n**Side effects** (documented
        in `osism/defaults` variable comment):\n- Ceph clients older than mimic (Ubuntu
        18.04 era) are rejected cluster-wide \u2014 hard gate\n- Glance image deletion
        with active RBD clones moves images to Ceph trash; space not reclaimed until
        all clones (Nova ephemeral disks) are gone\n- Effectively one-way on a live
        cluster once clone v2 objects exist\n\n**Insertion point:** `openstack_config.yml`
        runs in the `ceph-pools.yml` lifecycle step \u2014 after the cluster is up
        and configured, before Glance and Nova are deployed. This is the correct pre-OpenStack
        window.\n\n## Test plan\n\n- [ ] Bedbox end-to-end run with both this PR and
        `osism/defaults` #284: `ImageDependencyTests.test_image_volume_server_snapshot_dependency`
        and `test_nova_image_snapshot_dependency` pass\n- [ ] Verify idempotency:
        re-running `ceph-pools.yml` on a cluster already at `mimic` produces no change\n-
        [ ] Once confirmed in CI, revert the `exclude.lst` workaround from testbed
        PR #2885\n\nCompanion PR: osism/defaults#284\n\n\U0001F916 Generated with
        [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/container-image-ceph-ansible/pull/690
      child_jobs: []
      commit_id: c3bacefde864b6cc1a6b5fb5725642952f728366
      event_id: 3fd9d2e8-5920-11f1-8f5e-8e9246a547a3
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/6432875aacdc4fd5863b71896bef1ab2/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/6432875aacdc4fd5863b71896bef1ab2/work/logs
        result_data_file: /var/lib/zuul/builds/6432875aacdc4fd5863b71896bef1ab2/work/results.json
        src_root: /var/lib/zuul/builds/6432875aacdc4fd5863b71896bef1ab2/work/src
        work_root: /var/lib/zuul/builds/6432875aacdc4fd5863b71896bef1ab2/work
      include_vars: []
      items:
      - branch: main
        change: '690'
        change_message: "openstack_config: set require-min-compat-client on OSD map\n\n##
          Summary\n\n- Appends five tasks to `files/playbooks/tasks/openstack_config.yml`
          (after the cephx key block) that conditionally raise the Ceph OSD map `require-min-compat-client`
          to the release named by `ceph_require_min_compat_client`\n- Default value
          (`mimic`) is provided by the companion PR in `osism/defaults` (#284)\n\n**Why:**
          With the default Ceph compat level (luminous), Nova creates RBD clone v1
          clones that hold a protection lock on their parent snapshot. When Glance
          tries to delete the base image, `glance_store`'s RBD driver calls `unprotect_snap()`,
          which raises `ImageBusy` under clone v1 \u2014 surfaced as HTTP 409. Setting
          the minimum compat client to `mimic` enables RBD clone v2 cluster-wide:
          protection locks are no longer used, `unprotect_snap()` succeeds, and the
          deletion proceeds through `trash_move()` (introduced in glance_store 4.6.0).
          This fixes the two `tempest.api.image.v2.test_images_dependency.ImageDependencyTests`.\n\n**Implementation
          details:**\n- Assert task validates `ceph_require_min_compat_client` is
          a known release in `ceph_min_compat_client_order` (defined in `osism/defaults`)\n-
          Gathers minimal facts for the first monitor host (needed to build the `ceph-mon-<hostname>`
          container name)\n- Reads current OSD dump as JSON, evaluates ordering against
          the map \u2014 only raises the compat level, never lowers it\n- All tasks
          guarded by `ceph_require_min_compat_client | default('', true) | string
          | length > 0`; set to `''` to skip entirely\n\n**Side effects** (documented
          in `osism/defaults` variable comment):\n- Ceph clients older than mimic
          (Ubuntu 18.04 era) are rejected cluster-wide \u2014 hard gate\n- Glance
          image deletion with active RBD clones moves images to Ceph trash; space
          not reclaimed until all clones (Nova ephemeral disks) are gone\n- Effectively
          one-way on a live cluster once clone v2 objects exist\n\n**Insertion point:**
          `openstack_config.yml` runs in the `ceph-pools.yml` lifecycle step \u2014
          after the cluster is up and configured, before Glance and Nova are deployed.
          This is the correct pre-OpenStack window.\n\n## Test plan\n\n- [ ] Bedbox
          end-to-end run with both this PR and `osism/defaults` #284: `ImageDependencyTests.test_image_volume_server_snapshot_dependency`
          and `test_nova_image_snapshot_dependency` pass\n- [ ] Verify idempotency:
          re-running `ceph-pools.yml` on a cluster already at `mimic` produces no
          change\n- [ ] Once confirmed in CI, revert the `exclude.lst` workaround
          from testbed PR #2885\n\nCompanion PR: osism/defaults#284\n\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/container-image-ceph-ansible/pull/690
        commit_id: c3bacefde864b6cc1a6b5fb5725642952f728366
        patchset: c3bacefde864b6cc1a6b5fb5725642952f728366
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-ceph-ansible
          name: osism/container-image-ceph-ansible
          short_name: container-image-ceph-ansible
          src_dir: src/github.com/osism/container-image-ceph-ansible
        topic: null
      job: container-image-ceph-ansible-build-reef
      jobtags: []
      max_attempts: 3
      message: b3BlbnN0YWNrX2NvbmZpZzogc2V0IHJlcXVpcmUtbWluLWNvbXBhdC1jbGllbnQgb24gT1NEIG1hcAoKIyMgU3VtbWFyeQoKLSBBcHBlbmRzIGZpdmUgdGFza3MgdG8gYGZpbGVzL3BsYXlib29rcy90YXNrcy9vcGVuc3RhY2tfY29uZmlnLnltbGAgKGFmdGVyIHRoZSBjZXBoeCBrZXkgYmxvY2spIHRoYXQgY29uZGl0aW9uYWxseSByYWlzZSB0aGUgQ2VwaCBPU0QgbWFwIGByZXF1aXJlLW1pbi1jb21wYXQtY2xpZW50YCB0byB0aGUgcmVsZWFzZSBuYW1lZCBieSBgY2VwaF9yZXF1aXJlX21pbl9jb21wYXRfY2xpZW50YAotIERlZmF1bHQgdmFsdWUgKGBtaW1pY2ApIGlzIHByb3ZpZGVkIGJ5IHRoZSBjb21wYW5pb24gUFIgaW4gYG9zaXNtL2RlZmF1bHRzYCAoIzI4NCkKCioqV2h5OioqIFdpdGggdGhlIGRlZmF1bHQgQ2VwaCBjb21wYXQgbGV2ZWwgKGx1bWlub3VzKSwgTm92YSBjcmVhdGVzIFJCRCBjbG9uZSB2MSBjbG9uZXMgdGhhdCBob2xkIGEgcHJvdGVjdGlvbiBsb2NrIG9uIHRoZWlyIHBhcmVudCBzbmFwc2hvdC4gV2hlbiBHbGFuY2UgdHJpZXMgdG8gZGVsZXRlIHRoZSBiYXNlIGltYWdlLCBgZ2xhbmNlX3N0b3JlYCdzIFJCRCBkcml2ZXIgY2FsbHMgYHVucHJvdGVjdF9zbmFwKClgLCB3aGljaCByYWlzZXMgYEltYWdlQnVzeWAgdW5kZXIgY2xvbmUgdjEg4oCUIHN1cmZhY2VkIGFzIEhUVFAgNDA5LiBTZXR0aW5nIHRoZSBtaW5pbXVtIGNvbXBhdCBjbGllbnQgdG8gYG1pbWljYCBlbmFibGVzIFJCRCBjbG9uZSB2MiBjbHVzdGVyLXdpZGU6IHByb3RlY3Rpb24gbG9ja3MgYXJlIG5vIGxvbmdlciB1c2VkLCBgdW5wcm90ZWN0X3NuYXAoKWAgc3VjY2VlZHMsIGFuZCB0aGUgZGVsZXRpb24gcHJvY2VlZHMgdGhyb3VnaCBgdHJhc2hfbW92ZSgpYCAoaW50cm9kdWNlZCBpbiBnbGFuY2Vfc3RvcmUgNC42LjApLiBUaGlzIGZpeGVzIHRoZSB0d28gYHRlbXBlc3QuYXBpLmltYWdlLnYyLnRlc3RfaW1hZ2VzX2RlcGVuZGVuY3kuSW1hZ2VEZXBlbmRlbmN5VGVzdHNgLgoKKipJbXBsZW1lbnRhdGlvbiBkZXRhaWxzOioqCi0gQXNzZXJ0IHRhc2sgdmFsaWRhdGVzIGBjZXBoX3JlcXVpcmVfbWluX2NvbXBhdF9jbGllbnRgIGlzIGEga25vd24gcmVsZWFzZSBpbiBgY2VwaF9taW5fY29tcGF0X2NsaWVudF9vcmRlcmAgKGRlZmluZWQgaW4gYG9zaXNtL2RlZmF1bHRzYCkKLSBHYXRoZXJzIG1pbmltYWwgZmFjdHMgZm9yIHRoZSBmaXJzdCBtb25pdG9yIGhvc3QgKG5lZWRlZCB0byBidWlsZCB0aGUgYGNlcGgtbW9uLTxob3N0bmFtZT5gIGNvbnRhaW5lciBuYW1lKQotIFJlYWRzIGN1cnJlbnQgT1NEIGR1bXAgYXMgSlNPTiwgZXZhbHVhdGVzIG9yZGVyaW5nIGFnYWluc3QgdGhlIG1hcCDigJQgb25seSByYWlzZXMgdGhlIGNvbXBhdCBsZXZlbCwgbmV2ZXIgbG93ZXJzIGl0Ci0gQWxsIHRhc2tzIGd1YXJkZWQgYnkgYGNlcGhfcmVxdWlyZV9taW5fY29tcGF0X2NsaWVudCB8IGRlZmF1bHQoJycsIHRydWUpIHwgc3RyaW5nIHwgbGVuZ3RoID4gMGA7IHNldCB0byBgJydgIHRvIHNraXAgZW50aXJlbHkKCioqU2lkZSBlZmZlY3RzKiogKGRvY3VtZW50ZWQgaW4gYG9zaXNtL2RlZmF1bHRzYCB2YXJpYWJsZSBjb21tZW50KToKLSBDZXBoIGNsaWVudHMgb2xkZXIgdGhhbiBtaW1pYyAoVWJ1bnR1IDE4LjA0IGVyYSkgYXJlIHJlamVjdGVkIGNsdXN0ZXItd2lkZSDigJQgaGFyZCBnYXRlCi0gR2xhbmNlIGltYWdlIGRlbGV0aW9uIHdpdGggYWN0aXZlIFJCRCBjbG9uZXMgbW92ZXMgaW1hZ2VzIHRvIENlcGggdHJhc2g7IHNwYWNlIG5vdCByZWNsYWltZWQgdW50aWwgYWxsIGNsb25lcyAoTm92YSBlcGhlbWVyYWwgZGlza3MpIGFyZSBnb25lCi0gRWZmZWN0aXZlbHkgb25lLXdheSBvbiBhIGxpdmUgY2x1c3RlciBvbmNlIGNsb25lIHYyIG9iamVjdHMgZXhpc3QKCioqSW5zZXJ0aW9uIHBvaW50OioqIGBvcGVuc3RhY2tfY29uZmlnLnltbGAgcnVucyBpbiB0aGUgYGNlcGgtcG9vbHMueW1sYCBsaWZlY3ljbGUgc3RlcCDigJQgYWZ0ZXIgdGhlIGNsdXN0ZXIgaXMgdXAgYW5kIGNvbmZpZ3VyZWQsIGJlZm9yZSBHbGFuY2UgYW5kIE5vdmEgYXJlIGRlcGxveWVkLiBUaGlzIGlzIHRoZSBjb3JyZWN0IHByZS1PcGVuU3RhY2sgd2luZG93LgoKIyMgVGVzdCBwbGFuCgotIFsgXSBCZWRib3ggZW5kLXRvLWVuZCBydW4gd2l0aCBib3RoIHRoaXMgUFIgYW5kIGBvc2lzbS9kZWZhdWx0c2AgIzI4NDogYEltYWdlRGVwZW5kZW5jeVRlc3RzLnRlc3RfaW1hZ2Vfdm9sdW1lX3NlcnZlcl9zbmFwc2hvdF9kZXBlbmRlbmN5YCBhbmQgYHRlc3Rfbm92YV9pbWFnZV9zbmFwc2hvdF9kZXBlbmRlbmN5YCBwYXNzCi0gWyBdIFZlcmlmeSBpZGVtcG90ZW5jeTogcmUtcnVubmluZyBgY2VwaC1wb29scy55bWxgIG9uIGEgY2x1c3RlciBhbHJlYWR5IGF0IGBtaW1pY2AgcHJvZHVjZXMgbm8gY2hhbmdlCi0gWyBdIE9uY2UgY29uZmlybWVkIGluIENJLCByZXZlcnQgdGhlIGBleGNsdWRlLmxzdGAgd29ya2Fyb3VuZCBmcm9tIHRlc3RiZWQgUFIgIzI4ODUKCkNvbXBhbmlvbiBQUjogb3Npc20vZGVmYXVsdHMjMjg0Cgrwn6SWIEdlbmVyYXRlZCB3aXRoIFtDbGF1ZGUgQ29kZV0oaHR0cHM6Ly9jbGF1ZGUuY29tL2NsYXVkZS1jb2RlKQ==
      patchset: c3bacefde864b6cc1a6b5fb5725642952f728366
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 019f0261a526db7d8989ff1abefc2299a8c0ffbc
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
          untrusted/project_0/github.com/osism/container-image-ceph-ansible:
            canonical_name: github.com/osism/container-image-ceph-ansible
            checkout: main
            commit: 9ba4b257beb20a10582f3c0d56f7d43c2b3f56d4
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 019f0261a526db7d8989ff1abefc2299a8c0ffbc
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
          untrusted/project_3/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
        playbooks:
        - path: untrusted/project_0/github.com/osism/container-image-ceph-ansible/playbooks/build.yml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_3/zuul-jobs
            link_target: untrusted/project_3/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_3/zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/container-image-ceph-ansible
        name: osism/container-image-ceph-ansible
        short_name: container-image-ceph-ansible
        src_dir: src/github.com/osism/container-image-ceph-ansible
      projects:
        github.com/osism/container-image-ceph-ansible:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-ceph-ansible
          checkout: main
          checkout_description: zuul branch
          commit: 9ba4b257beb20a10582f3c0d56f7d43c2b3f56d4
          name: osism/container-image-ceph-ansible
          required: false
          short_name: container-image-ceph-ansible
          src_dir: src/github.com/osism/container-image-ceph-ansible
      ref: refs/pull/690/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
