all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    ubuntu-noble-large:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fed6:8091
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      kubernetes_version: v1.35
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 96c4b4a5-2404-4774-84f4-124572821d75
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fed6:8091
        label: ubuntu-noble-large
        node_properties: {}
        private_ipv4: 10.128.0.108
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.18
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fed6:8091
        region: null
        slot: null
      upload_image: false
      variant: ''
  vars:
    kubernetes_version: v1.35
    upload_image: false
    variant: ''
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job abstract-k8s-capi-images-build explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/k8s-capi-images/.zuul.yaml@main#18>'
      - '<Job k8s-capi-images-build-v1.35 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/k8s-capi-images/.zuul.yaml@main#84>'
      - '<Job k8s-capi-images-build-v1.35 explicit: None implied: None source: osism/k8s-capi-images/.zuul.yaml@main#228>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: dcbb1bb16ae04f9da501f2c6b7c7d90a
      build_refs:
      - branch: main
        change: '336'
        change_message: "Wire DIB into Zuul CI, publish to S3, and retire the Packer
          flow\n\nCloses #334\n\n## What this does\n\nWires the diskimage-builder
          (DIB) flow into Zuul CI, publishes the resulting images to S3, and retires
          the leftover Packer pieces. The published S3 layout and image naming stay
          identical, so the README URLs and `scripts/generate-k8s-image-urls.sh` keep
          resolving unchanged. The branch builds on the `overrides/*.json` files already
          present on `main` and the local `disk-image-create` build wired up earlier
          in the migration (#332).\n\n## Change set (in commit order)\n\n1. **Replace
          Packer pre-run with DIB host preparation** (`be1b39d`) \u2014 `playbooks/pre.yml`
          now installs the host packages DIB needs, builds the venv from `requirements.txt`,
          and creates the `zuul-output` directories. Drops the qemu-kvm/libguestfs/goss
          host prep that only the retired Packer flow required.\n\n2. **Build and
          publish images via disk-image-create** (`b569c77`) \u2014 `playbooks/build.yml`
          runs `disk-image-create` per Kubernetes series and variant, selecting the
          `overrides/<version>[-gardener].json` seam, and writes the qcow2, `.CHECKSUM`,
          and `last-X` pointer under the unchanged published names. The `rclone` upload
          to `s3:osism/openstack-k8s-capi-images/` is gated on `upload_image`, so
          `check` builds without credentials while `post`/`periodic` publish. `kubernetes_version`,
          `variant`, and `upload_image` are resolved with inline `default()` filters
          rather than self-referential play vars \u2014 Zuul passes job vars as inventory
          vars, which a same-named play var would shadow into a recursive-template
          loop.\n\n3. **Remove Packer post.yml and extra_vars_*.json files** (`8d126c2`)
          \u2014 deletes `playbooks/post.yml` (uploaded to the wrong S3 layout; superseded
          by `build.yml`'s publish task) and the eight `extra_vars_*.json` files,
          which carried the Packer-only `iso_url`/`iso_checksum`/`output_directory`
          keys. They are replaced by the ISO-free `overrides/*.json` files; removing
          them is what drops the ISO handling from the build.\n\n4. **Wire DIB build/publish
          jobs into Zuul pipelines** (`c25251d`) \u2014 adds an abstract build job
          and an abstract publish job, then a build + publish job for each Kubernetes
          series and its gardener variant. The `check` pipeline builds every series/variant
          alongside `flake8`/`yamllint`; `periodic-daily` and `post` publish. Per-job
          file filters gate each variant on its override plus the shared build inputs.
          The `kubernetes-sigs/image-builder` required-project is dropped because
          the k8s-capi element clones it at a pinned ref during the build.\n\n5. **Move
          version automation to scripts/ on overrides** (`ed3cd1d`) \u2014 relocates
          `src/update-extra-vars.py` to `scripts/` next to its runner and points the
          runner at `overrides/*.json` instead of the removed `extra_vars_*.json`
          files. The script already syncs only the `kubernetes_*` keys and the README
          version column, so iterating the ISO-free overrides drops the old ISO handling
          without a code change while preserving the gardener containerd/runc pins.
          Also drops the now-vestigial `submodules: true` from the sync workflow (`.gitmodules`
          is empty; image-builder is fetched by the element at build time).\n\n6.
          **Document the DIB build workflow in README** (`96d3480`) \u2014 describes
          diskimage-builder and the k8s-capi element as the build engine and adds
          a \"Building images\" section covering `build-local.sh` and the Zuul check/post/periodic
          pipelines. The versions table, last-X docs, URL generation, checksum docs,
          and Archived table are left unchanged so published URLs keep resolving.\n\n##
          Reviewer note \u2014 placeholder publish credentials\n\n\u26A0\uFE0F The
          `SECRET_K8S_CAPI_IMAGES` values committed in `.zuul.yaml` are **placeholders**
          that keep the config valid but cannot authenticate. A maintainer holding
          the object-storage credentials must regenerate them with `zuul-client encrypt`
          for `osism/k8s-capi-images` before the publish jobs can upload. The `check`
          pipeline builds without credentials, so CI validation works today; the `post`/`periodic`
          publish path will not actually upload until the real secret is in place.
          This is an intentional, documented limitation (the implementing session
          cannot hold credentials), not a defect \u2014 but it is required follow-up
          before merge delivers the publishing capability.\n\n## Relation to the issue\n\nThe
          change set matches issue #334 as written: builds all series/variants on
          `check`, publishes on `post`/`periodic`, holds the S3 layout/naming constant,
          moves version automation onto the override layout, and removes the Packer
          remnants. The only divergence is the placeholder secret noted above, which
          is inherent to the automated session and called out in commit `c25251d`.\n\n---\n\n_Implemented
          by [planwerk-agent](https://github.com/planwerk/planwerk-agent) 84299e2
          with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/k8s-capi-images/pull/336
        commit_id: 4b6c2ff45dba29008767ca83ead9fbec1349786c
        patchset: 4b6c2ff45dba29008767ca83ead9fbec1349786c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/k8s-capi-images
          name: osism/k8s-capi-images
          short_name: k8s-capi-images
        src_dir: src/github.com/osism/k8s-capi-images
        topic: null
      buildset: 5ab0f76a25414ad481d60caff759af5d
      buildset_refs:
      - branch: main
        change: '336'
        change_message: "Wire DIB into Zuul CI, publish to S3, and retire the Packer
          flow\n\nCloses #334\n\n## What this does\n\nWires the diskimage-builder
          (DIB) flow into Zuul CI, publishes the resulting images to S3, and retires
          the leftover Packer pieces. The published S3 layout and image naming stay
          identical, so the README URLs and `scripts/generate-k8s-image-urls.sh` keep
          resolving unchanged. The branch builds on the `overrides/*.json` files already
          present on `main` and the local `disk-image-create` build wired up earlier
          in the migration (#332).\n\n## Change set (in commit order)\n\n1. **Replace
          Packer pre-run with DIB host preparation** (`be1b39d`) \u2014 `playbooks/pre.yml`
          now installs the host packages DIB needs, builds the venv from `requirements.txt`,
          and creates the `zuul-output` directories. Drops the qemu-kvm/libguestfs/goss
          host prep that only the retired Packer flow required.\n\n2. **Build and
          publish images via disk-image-create** (`b569c77`) \u2014 `playbooks/build.yml`
          runs `disk-image-create` per Kubernetes series and variant, selecting the
          `overrides/<version>[-gardener].json` seam, and writes the qcow2, `.CHECKSUM`,
          and `last-X` pointer under the unchanged published names. The `rclone` upload
          to `s3:osism/openstack-k8s-capi-images/` is gated on `upload_image`, so
          `check` builds without credentials while `post`/`periodic` publish. `kubernetes_version`,
          `variant`, and `upload_image` are resolved with inline `default()` filters
          rather than self-referential play vars \u2014 Zuul passes job vars as inventory
          vars, which a same-named play var would shadow into a recursive-template
          loop.\n\n3. **Remove Packer post.yml and extra_vars_*.json files** (`8d126c2`)
          \u2014 deletes `playbooks/post.yml` (uploaded to the wrong S3 layout; superseded
          by `build.yml`'s publish task) and the eight `extra_vars_*.json` files,
          which carried the Packer-only `iso_url`/`iso_checksum`/`output_directory`
          keys. They are replaced by the ISO-free `overrides/*.json` files; removing
          them is what drops the ISO handling from the build.\n\n4. **Wire DIB build/publish
          jobs into Zuul pipelines** (`c25251d`) \u2014 adds an abstract build job
          and an abstract publish job, then a build + publish job for each Kubernetes
          series and its gardener variant. The `check` pipeline builds every series/variant
          alongside `flake8`/`yamllint`; `periodic-daily` and `post` publish. Per-job
          file filters gate each variant on its override plus the shared build inputs.
          The `kubernetes-sigs/image-builder` required-project is dropped because
          the k8s-capi element clones it at a pinned ref during the build.\n\n5. **Move
          version automation to scripts/ on overrides** (`ed3cd1d`) \u2014 relocates
          `src/update-extra-vars.py` to `scripts/` next to its runner and points the
          runner at `overrides/*.json` instead of the removed `extra_vars_*.json`
          files. The script already syncs only the `kubernetes_*` keys and the README
          version column, so iterating the ISO-free overrides drops the old ISO handling
          without a code change while preserving the gardener containerd/runc pins.
          Also drops the now-vestigial `submodules: true` from the sync workflow (`.gitmodules`
          is empty; image-builder is fetched by the element at build time).\n\n6.
          **Document the DIB build workflow in README** (`96d3480`) \u2014 describes
          diskimage-builder and the k8s-capi element as the build engine and adds
          a \"Building images\" section covering `build-local.sh` and the Zuul check/post/periodic
          pipelines. The versions table, last-X docs, URL generation, checksum docs,
          and Archived table are left unchanged so published URLs keep resolving.\n\n##
          Reviewer note \u2014 placeholder publish credentials\n\n\u26A0\uFE0F The
          `SECRET_K8S_CAPI_IMAGES` values committed in `.zuul.yaml` are **placeholders**
          that keep the config valid but cannot authenticate. A maintainer holding
          the object-storage credentials must regenerate them with `zuul-client encrypt`
          for `osism/k8s-capi-images` before the publish jobs can upload. The `check`
          pipeline builds without credentials, so CI validation works today; the `post`/`periodic`
          publish path will not actually upload until the real secret is in place.
          This is an intentional, documented limitation (the implementing session
          cannot hold credentials), not a defect \u2014 but it is required follow-up
          before merge delivers the publishing capability.\n\n## Relation to the issue\n\nThe
          change set matches issue #334 as written: builds all series/variants on
          `check`, publishes on `post`/`periodic`, holds the S3 layout/naming constant,
          moves version automation onto the override layout, and removes the Packer
          remnants. The only divergence is the placeholder secret noted above, which
          is inherent to the automated session and called out in commit `c25251d`.\n\n---\n\n_Implemented
          by [planwerk-agent](https://github.com/planwerk/planwerk-agent) 84299e2
          with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/k8s-capi-images/pull/336
        commit_id: 4b6c2ff45dba29008767ca83ead9fbec1349786c
        patchset: 4b6c2ff45dba29008767ca83ead9fbec1349786c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/k8s-capi-images
          name: osism/k8s-capi-images
          short_name: k8s-capi-images
        src_dir: src/github.com/osism/k8s-capi-images
        topic: null
      change: '336'
      change_message: "Wire DIB into Zuul CI, publish to S3, and retire the Packer
        flow\n\nCloses #334\n\n## What this does\n\nWires the diskimage-builder (DIB)
        flow into Zuul CI, publishes the resulting images to S3, and retires the leftover
        Packer pieces. The published S3 layout and image naming stay identical, so
        the README URLs and `scripts/generate-k8s-image-urls.sh` keep resolving unchanged.
        The branch builds on the `overrides/*.json` files already present on `main`
        and the local `disk-image-create` build wired up earlier in the migration
        (#332).\n\n## Change set (in commit order)\n\n1. **Replace Packer pre-run
        with DIB host preparation** (`be1b39d`) \u2014 `playbooks/pre.yml` now installs
        the host packages DIB needs, builds the venv from `requirements.txt`, and
        creates the `zuul-output` directories. Drops the qemu-kvm/libguestfs/goss
        host prep that only the retired Packer flow required.\n\n2. **Build and publish
        images via disk-image-create** (`b569c77`) \u2014 `playbooks/build.yml` runs
        `disk-image-create` per Kubernetes series and variant, selecting the `overrides/<version>[-gardener].json`
        seam, and writes the qcow2, `.CHECKSUM`, and `last-X` pointer under the unchanged
        published names. The `rclone` upload to `s3:osism/openstack-k8s-capi-images/`
        is gated on `upload_image`, so `check` builds without credentials while `post`/`periodic`
        publish. `kubernetes_version`, `variant`, and `upload_image` are resolved
        with inline `default()` filters rather than self-referential play vars \u2014
        Zuul passes job vars as inventory vars, which a same-named play var would
        shadow into a recursive-template loop.\n\n3. **Remove Packer post.yml and
        extra_vars_*.json files** (`8d126c2`) \u2014 deletes `playbooks/post.yml`
        (uploaded to the wrong S3 layout; superseded by `build.yml`'s publish task)
        and the eight `extra_vars_*.json` files, which carried the Packer-only `iso_url`/`iso_checksum`/`output_directory`
        keys. They are replaced by the ISO-free `overrides/*.json` files; removing
        them is what drops the ISO handling from the build.\n\n4. **Wire DIB build/publish
        jobs into Zuul pipelines** (`c25251d`) \u2014 adds an abstract build job and
        an abstract publish job, then a build + publish job for each Kubernetes series
        and its gardener variant. The `check` pipeline builds every series/variant
        alongside `flake8`/`yamllint`; `periodic-daily` and `post` publish. Per-job
        file filters gate each variant on its override plus the shared build inputs.
        The `kubernetes-sigs/image-builder` required-project is dropped because the
        k8s-capi element clones it at a pinned ref during the build.\n\n5. **Move
        version automation to scripts/ on overrides** (`ed3cd1d`) \u2014 relocates
        `src/update-extra-vars.py` to `scripts/` next to its runner and points the
        runner at `overrides/*.json` instead of the removed `extra_vars_*.json` files.
        The script already syncs only the `kubernetes_*` keys and the README version
        column, so iterating the ISO-free overrides drops the old ISO handling without
        a code change while preserving the gardener containerd/runc pins. Also drops
        the now-vestigial `submodules: true` from the sync workflow (`.gitmodules`
        is empty; image-builder is fetched by the element at build time).\n\n6. **Document
        the DIB build workflow in README** (`96d3480`) \u2014 describes diskimage-builder
        and the k8s-capi element as the build engine and adds a \"Building images\"
        section covering `build-local.sh` and the Zuul check/post/periodic pipelines.
        The versions table, last-X docs, URL generation, checksum docs, and Archived
        table are left unchanged so published URLs keep resolving.\n\n## Reviewer
        note \u2014 placeholder publish credentials\n\n\u26A0\uFE0F The `SECRET_K8S_CAPI_IMAGES`
        values committed in `.zuul.yaml` are **placeholders** that keep the config
        valid but cannot authenticate. A maintainer holding the object-storage credentials
        must regenerate them with `zuul-client encrypt` for `osism/k8s-capi-images`
        before the publish jobs can upload. The `check` pipeline builds without credentials,
        so CI validation works today; the `post`/`periodic` publish path will not
        actually upload until the real secret is in place. This is an intentional,
        documented limitation (the implementing session cannot hold credentials),
        not a defect \u2014 but it is required follow-up before merge delivers the
        publishing capability.\n\n## Relation to the issue\n\nThe change set matches
        issue #334 as written: builds all series/variants on `check`, publishes on
        `post`/`periodic`, holds the S3 layout/naming constant, moves version automation
        onto the override layout, and removes the Packer remnants. The only divergence
        is the placeholder secret noted above, which is inherent to the automated
        session and called out in commit `c25251d`.\n\n---\n\n_Implemented by [planwerk-agent](https://github.com/planwerk/planwerk-agent)
        84299e2 with Claude:claude-opus-4-8_\n"
      change_url: https://github.com/osism/k8s-capi-images/pull/336
      child_jobs: []
      commit_id: 4b6c2ff45dba29008767ca83ead9fbec1349786c
      event_id: 720d0b80-72e9-11f1-864e-e156f5ce4570
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/dcbb1bb16ae04f9da501f2c6b7c7d90a/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/dcbb1bb16ae04f9da501f2c6b7c7d90a/work/logs
        result_data_file: /var/lib/zuul/builds/dcbb1bb16ae04f9da501f2c6b7c7d90a/work/results.json
        src_root: /var/lib/zuul/builds/dcbb1bb16ae04f9da501f2c6b7c7d90a/work/src
        work_root: /var/lib/zuul/builds/dcbb1bb16ae04f9da501f2c6b7c7d90a/work
      include_vars: []
      items:
      - branch: main
        change: '336'
        change_message: "Wire DIB into Zuul CI, publish to S3, and retire the Packer
          flow\n\nCloses #334\n\n## What this does\n\nWires the diskimage-builder
          (DIB) flow into Zuul CI, publishes the resulting images to S3, and retires
          the leftover Packer pieces. The published S3 layout and image naming stay
          identical, so the README URLs and `scripts/generate-k8s-image-urls.sh` keep
          resolving unchanged. The branch builds on the `overrides/*.json` files already
          present on `main` and the local `disk-image-create` build wired up earlier
          in the migration (#332).\n\n## Change set (in commit order)\n\n1. **Replace
          Packer pre-run with DIB host preparation** (`be1b39d`) \u2014 `playbooks/pre.yml`
          now installs the host packages DIB needs, builds the venv from `requirements.txt`,
          and creates the `zuul-output` directories. Drops the qemu-kvm/libguestfs/goss
          host prep that only the retired Packer flow required.\n\n2. **Build and
          publish images via disk-image-create** (`b569c77`) \u2014 `playbooks/build.yml`
          runs `disk-image-create` per Kubernetes series and variant, selecting the
          `overrides/<version>[-gardener].json` seam, and writes the qcow2, `.CHECKSUM`,
          and `last-X` pointer under the unchanged published names. The `rclone` upload
          to `s3:osism/openstack-k8s-capi-images/` is gated on `upload_image`, so
          `check` builds without credentials while `post`/`periodic` publish. `kubernetes_version`,
          `variant`, and `upload_image` are resolved with inline `default()` filters
          rather than self-referential play vars \u2014 Zuul passes job vars as inventory
          vars, which a same-named play var would shadow into a recursive-template
          loop.\n\n3. **Remove Packer post.yml and extra_vars_*.json files** (`8d126c2`)
          \u2014 deletes `playbooks/post.yml` (uploaded to the wrong S3 layout; superseded
          by `build.yml`'s publish task) and the eight `extra_vars_*.json` files,
          which carried the Packer-only `iso_url`/`iso_checksum`/`output_directory`
          keys. They are replaced by the ISO-free `overrides/*.json` files; removing
          them is what drops the ISO handling from the build.\n\n4. **Wire DIB build/publish
          jobs into Zuul pipelines** (`c25251d`) \u2014 adds an abstract build job
          and an abstract publish job, then a build + publish job for each Kubernetes
          series and its gardener variant. The `check` pipeline builds every series/variant
          alongside `flake8`/`yamllint`; `periodic-daily` and `post` publish. Per-job
          file filters gate each variant on its override plus the shared build inputs.
          The `kubernetes-sigs/image-builder` required-project is dropped because
          the k8s-capi element clones it at a pinned ref during the build.\n\n5. **Move
          version automation to scripts/ on overrides** (`ed3cd1d`) \u2014 relocates
          `src/update-extra-vars.py` to `scripts/` next to its runner and points the
          runner at `overrides/*.json` instead of the removed `extra_vars_*.json`
          files. The script already syncs only the `kubernetes_*` keys and the README
          version column, so iterating the ISO-free overrides drops the old ISO handling
          without a code change while preserving the gardener containerd/runc pins.
          Also drops the now-vestigial `submodules: true` from the sync workflow (`.gitmodules`
          is empty; image-builder is fetched by the element at build time).\n\n6.
          **Document the DIB build workflow in README** (`96d3480`) \u2014 describes
          diskimage-builder and the k8s-capi element as the build engine and adds
          a \"Building images\" section covering `build-local.sh` and the Zuul check/post/periodic
          pipelines. The versions table, last-X docs, URL generation, checksum docs,
          and Archived table are left unchanged so published URLs keep resolving.\n\n##
          Reviewer note \u2014 placeholder publish credentials\n\n\u26A0\uFE0F The
          `SECRET_K8S_CAPI_IMAGES` values committed in `.zuul.yaml` are **placeholders**
          that keep the config valid but cannot authenticate. A maintainer holding
          the object-storage credentials must regenerate them with `zuul-client encrypt`
          for `osism/k8s-capi-images` before the publish jobs can upload. The `check`
          pipeline builds without credentials, so CI validation works today; the `post`/`periodic`
          publish path will not actually upload until the real secret is in place.
          This is an intentional, documented limitation (the implementing session
          cannot hold credentials), not a defect \u2014 but it is required follow-up
          before merge delivers the publishing capability.\n\n## Relation to the issue\n\nThe
          change set matches issue #334 as written: builds all series/variants on
          `check`, publishes on `post`/`periodic`, holds the S3 layout/naming constant,
          moves version automation onto the override layout, and removes the Packer
          remnants. The only divergence is the placeholder secret noted above, which
          is inherent to the automated session and called out in commit `c25251d`.\n\n---\n\n_Implemented
          by [planwerk-agent](https://github.com/planwerk/planwerk-agent) 84299e2
          with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/k8s-capi-images/pull/336
        commit_id: 4b6c2ff45dba29008767ca83ead9fbec1349786c
        patchset: 4b6c2ff45dba29008767ca83ead9fbec1349786c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/k8s-capi-images
          name: osism/k8s-capi-images
          short_name: k8s-capi-images
          src_dir: src/github.com/osism/k8s-capi-images
        topic: null
      job: k8s-capi-images-build-v1.35
      jobtags: []
      max_attempts: 3
      message: V2lyZSBESUIgaW50byBadXVsIENJLCBwdWJsaXNoIHRvIFMzLCBhbmQgcmV0aXJlIHRoZSBQYWNrZXIgZmxvdwoKQ2xvc2VzICMzMzQKCiMjIFdoYXQgdGhpcyBkb2VzCgpXaXJlcyB0aGUgZGlza2ltYWdlLWJ1aWxkZXIgKERJQikgZmxvdyBpbnRvIFp1dWwgQ0ksIHB1Ymxpc2hlcyB0aGUgcmVzdWx0aW5nIGltYWdlcyB0byBTMywgYW5kIHJldGlyZXMgdGhlIGxlZnRvdmVyIFBhY2tlciBwaWVjZXMuIFRoZSBwdWJsaXNoZWQgUzMgbGF5b3V0IGFuZCBpbWFnZSBuYW1pbmcgc3RheSBpZGVudGljYWwsIHNvIHRoZSBSRUFETUUgVVJMcyBhbmQgYHNjcmlwdHMvZ2VuZXJhdGUtazhzLWltYWdlLXVybHMuc2hgIGtlZXAgcmVzb2x2aW5nIHVuY2hhbmdlZC4gVGhlIGJyYW5jaCBidWlsZHMgb24gdGhlIGBvdmVycmlkZXMvKi5qc29uYCBmaWxlcyBhbHJlYWR5IHByZXNlbnQgb24gYG1haW5gIGFuZCB0aGUgbG9jYWwgYGRpc2staW1hZ2UtY3JlYXRlYCBidWlsZCB3aXJlZCB1cCBlYXJsaWVyIGluIHRoZSBtaWdyYXRpb24gKCMzMzIpLgoKIyMgQ2hhbmdlIHNldCAoaW4gY29tbWl0IG9yZGVyKQoKMS4gKipSZXBsYWNlIFBhY2tlciBwcmUtcnVuIHdpdGggRElCIGhvc3QgcHJlcGFyYXRpb24qKiAoYGJlMWIzOWRgKSDigJQgYHBsYXlib29rcy9wcmUueW1sYCBub3cgaW5zdGFsbHMgdGhlIGhvc3QgcGFja2FnZXMgRElCIG5lZWRzLCBidWlsZHMgdGhlIHZlbnYgZnJvbSBgcmVxdWlyZW1lbnRzLnR4dGAsIGFuZCBjcmVhdGVzIHRoZSBgenV1bC1vdXRwdXRgIGRpcmVjdG9yaWVzLiBEcm9wcyB0aGUgcWVtdS1rdm0vbGliZ3Vlc3Rmcy9nb3NzIGhvc3QgcHJlcCB0aGF0IG9ubHkgdGhlIHJldGlyZWQgUGFja2VyIGZsb3cgcmVxdWlyZWQuCgoyLiAqKkJ1aWxkIGFuZCBwdWJsaXNoIGltYWdlcyB2aWEgZGlzay1pbWFnZS1jcmVhdGUqKiAoYGI1NjljNzdgKSDigJQgYHBsYXlib29rcy9idWlsZC55bWxgIHJ1bnMgYGRpc2staW1hZ2UtY3JlYXRlYCBwZXIgS3ViZXJuZXRlcyBzZXJpZXMgYW5kIHZhcmlhbnQsIHNlbGVjdGluZyB0aGUgYG92ZXJyaWRlcy88dmVyc2lvbj5bLWdhcmRlbmVyXS5qc29uYCBzZWFtLCBhbmQgd3JpdGVzIHRoZSBxY293MiwgYC5DSEVDS1NVTWAsIGFuZCBgbGFzdC1YYCBwb2ludGVyIHVuZGVyIHRoZSB1bmNoYW5nZWQgcHVibGlzaGVkIG5hbWVzLiBUaGUgYHJjbG9uZWAgdXBsb2FkIHRvIGBzMzpvc2lzbS9vcGVuc3RhY2stazhzLWNhcGktaW1hZ2VzL2AgaXMgZ2F0ZWQgb24gYHVwbG9hZF9pbWFnZWAsIHNvIGBjaGVja2AgYnVpbGRzIHdpdGhvdXQgY3JlZGVudGlhbHMgd2hpbGUgYHBvc3RgL2BwZXJpb2RpY2AgcHVibGlzaC4gYGt1YmVybmV0ZXNfdmVyc2lvbmAsIGB2YXJpYW50YCwgYW5kIGB1cGxvYWRfaW1hZ2VgIGFyZSByZXNvbHZlZCB3aXRoIGlubGluZSBgZGVmYXVsdCgpYCBmaWx0ZXJzIHJhdGhlciB0aGFuIHNlbGYtcmVmZXJlbnRpYWwgcGxheSB2YXJzIOKAlCBadXVsIHBhc3NlcyBqb2IgdmFycyBhcyBpbnZlbnRvcnkgdmFycywgd2hpY2ggYSBzYW1lLW5hbWVkIHBsYXkgdmFyIHdvdWxkIHNoYWRvdyBpbnRvIGEgcmVjdXJzaXZlLXRlbXBsYXRlIGxvb3AuCgozLiAqKlJlbW92ZSBQYWNrZXIgcG9zdC55bWwgYW5kIGV4dHJhX3ZhcnNfKi5qc29uIGZpbGVzKiogKGA4ZDEyNmMyYCkg4oCUIGRlbGV0ZXMgYHBsYXlib29rcy9wb3N0LnltbGAgKHVwbG9hZGVkIHRvIHRoZSB3cm9uZyBTMyBsYXlvdXQ7IHN1cGVyc2VkZWQgYnkgYGJ1aWxkLnltbGAncyBwdWJsaXNoIHRhc2spIGFuZCB0aGUgZWlnaHQgYGV4dHJhX3ZhcnNfKi5qc29uYCBmaWxlcywgd2hpY2ggY2FycmllZCB0aGUgUGFja2VyLW9ubHkgYGlzb191cmxgL2Bpc29fY2hlY2tzdW1gL2BvdXRwdXRfZGlyZWN0b3J5YCBrZXlzLiBUaGV5IGFyZSByZXBsYWNlZCBieSB0aGUgSVNPLWZyZWUgYG92ZXJyaWRlcy8qLmpzb25gIGZpbGVzOyByZW1vdmluZyB0aGVtIGlzIHdoYXQgZHJvcHMgdGhlIElTTyBoYW5kbGluZyBmcm9tIHRoZSBidWlsZC4KCjQuICoqV2lyZSBESUIgYnVpbGQvcHVibGlzaCBqb2JzIGludG8gWnV1bCBwaXBlbGluZXMqKiAoYGMyNTI1MWRgKSDigJQgYWRkcyBhbiBhYnN0cmFjdCBidWlsZCBqb2IgYW5kIGFuIGFic3RyYWN0IHB1Ymxpc2ggam9iLCB0aGVuIGEgYnVpbGQgKyBwdWJsaXNoIGpvYiBmb3IgZWFjaCBLdWJlcm5ldGVzIHNlcmllcyBhbmQgaXRzIGdhcmRlbmVyIHZhcmlhbnQuIFRoZSBgY2hlY2tgIHBpcGVsaW5lIGJ1aWxkcyBldmVyeSBzZXJpZXMvdmFyaWFudCBhbG9uZ3NpZGUgYGZsYWtlOGAvYHlhbWxsaW50YDsgYHBlcmlvZGljLWRhaWx5YCBhbmQgYHBvc3RgIHB1Ymxpc2guIFBlci1qb2IgZmlsZSBmaWx0ZXJzIGdhdGUgZWFjaCB2YXJpYW50IG9uIGl0cyBvdmVycmlkZSBwbHVzIHRoZSBzaGFyZWQgYnVpbGQgaW5wdXRzLiBUaGUgYGt1YmVybmV0ZXMtc2lncy9pbWFnZS1idWlsZGVyYCByZXF1aXJlZC1wcm9qZWN0IGlzIGRyb3BwZWQgYmVjYXVzZSB0aGUgazhzLWNhcGkgZWxlbWVudCBjbG9uZXMgaXQgYXQgYSBwaW5uZWQgcmVmIGR1cmluZyB0aGUgYnVpbGQuCgo1LiAqKk1vdmUgdmVyc2lvbiBhdXRvbWF0aW9uIHRvIHNjcmlwdHMvIG9uIG92ZXJyaWRlcyoqIChgZWQzY2QxZGApIOKAlCByZWxvY2F0ZXMgYHNyYy91cGRhdGUtZXh0cmEtdmFycy5weWAgdG8gYHNjcmlwdHMvYCBuZXh0IHRvIGl0cyBydW5uZXIgYW5kIHBvaW50cyB0aGUgcnVubmVyIGF0IGBvdmVycmlkZXMvKi5qc29uYCBpbnN0ZWFkIG9mIHRoZSByZW1vdmVkIGBleHRyYV92YXJzXyouanNvbmAgZmlsZXMuIFRoZSBzY3JpcHQgYWxyZWFkeSBzeW5jcyBvbmx5IHRoZSBga3ViZXJuZXRlc18qYCBrZXlzIGFuZCB0aGUgUkVBRE1FIHZlcnNpb24gY29sdW1uLCBzbyBpdGVyYXRpbmcgdGhlIElTTy1mcmVlIG92ZXJyaWRlcyBkcm9wcyB0aGUgb2xkIElTTyBoYW5kbGluZyB3aXRob3V0IGEgY29kZSBjaGFuZ2Ugd2hpbGUgcHJlc2VydmluZyB0aGUgZ2FyZGVuZXIgY29udGFpbmVyZC9ydW5jIHBpbnMuIEFsc28gZHJvcHMgdGhlIG5vdy12ZXN0aWdpYWwgYHN1Ym1vZHVsZXM6IHRydWVgIGZyb20gdGhlIHN5bmMgd29ya2Zsb3cgKGAuZ2l0bW9kdWxlc2AgaXMgZW1wdHk7IGltYWdlLWJ1aWxkZXIgaXMgZmV0Y2hlZCBieSB0aGUgZWxlbWVudCBhdCBidWlsZCB0aW1lKS4KCjYuICoqRG9jdW1lbnQgdGhlIERJQiBidWlsZCB3b3JrZmxvdyBpbiBSRUFETUUqKiAoYDk2ZDM0ODBgKSDigJQgZGVzY3JpYmVzIGRpc2tpbWFnZS1idWlsZGVyIGFuZCB0aGUgazhzLWNhcGkgZWxlbWVudCBhcyB0aGUgYnVpbGQgZW5naW5lIGFuZCBhZGRzIGEgIkJ1aWxkaW5nIGltYWdlcyIgc2VjdGlvbiBjb3ZlcmluZyBgYnVpbGQtbG9jYWwuc2hgIGFuZCB0aGUgWnV1bCBjaGVjay9wb3N0L3BlcmlvZGljIHBpcGVsaW5lcy4gVGhlIHZlcnNpb25zIHRhYmxlLCBsYXN0LVggZG9jcywgVVJMIGdlbmVyYXRpb24sIGNoZWNrc3VtIGRvY3MsIGFuZCBBcmNoaXZlZCB0YWJsZSBhcmUgbGVmdCB1bmNoYW5nZWQgc28gcHVibGlzaGVkIFVSTHMga2VlcCByZXNvbHZpbmcuCgojIyBSZXZpZXdlciBub3RlIOKAlCBwbGFjZWhvbGRlciBwdWJsaXNoIGNyZWRlbnRpYWxzCgrimqDvuI8gVGhlIGBTRUNSRVRfSzhTX0NBUElfSU1BR0VTYCB2YWx1ZXMgY29tbWl0dGVkIGluIGAuenV1bC55YW1sYCBhcmUgKipwbGFjZWhvbGRlcnMqKiB0aGF0IGtlZXAgdGhlIGNvbmZpZyB2YWxpZCBidXQgY2Fubm90IGF1dGhlbnRpY2F0ZS4gQSBtYWludGFpbmVyIGhvbGRpbmcgdGhlIG9iamVjdC1zdG9yYWdlIGNyZWRlbnRpYWxzIG11c3QgcmVnZW5lcmF0ZSB0aGVtIHdpdGggYHp1dWwtY2xpZW50IGVuY3J5cHRgIGZvciBgb3Npc20vazhzLWNhcGktaW1hZ2VzYCBiZWZvcmUgdGhlIHB1Ymxpc2ggam9icyBjYW4gdXBsb2FkLiBUaGUgYGNoZWNrYCBwaXBlbGluZSBidWlsZHMgd2l0aG91dCBjcmVkZW50aWFscywgc28gQ0kgdmFsaWRhdGlvbiB3b3JrcyB0b2RheTsgdGhlIGBwb3N0YC9gcGVyaW9kaWNgIHB1Ymxpc2ggcGF0aCB3aWxsIG5vdCBhY3R1YWxseSB1cGxvYWQgdW50aWwgdGhlIHJlYWwgc2VjcmV0IGlzIGluIHBsYWNlLiBUaGlzIGlzIGFuIGludGVudGlvbmFsLCBkb2N1bWVudGVkIGxpbWl0YXRpb24gKHRoZSBpbXBsZW1lbnRpbmcgc2Vzc2lvbiBjYW5ub3QgaG9sZCBjcmVkZW50aWFscyksIG5vdCBhIGRlZmVjdCDigJQgYnV0IGl0IGlzIHJlcXVpcmVkIGZvbGxvdy11cCBiZWZvcmUgbWVyZ2UgZGVsaXZlcnMgdGhlIHB1Ymxpc2hpbmcgY2FwYWJpbGl0eS4KCiMjIFJlbGF0aW9uIHRvIHRoZSBpc3N1ZQoKVGhlIGNoYW5nZSBzZXQgbWF0Y2hlcyBpc3N1ZSAjMzM0IGFzIHdyaXR0ZW46IGJ1aWxkcyBhbGwgc2VyaWVzL3ZhcmlhbnRzIG9uIGBjaGVja2AsIHB1Ymxpc2hlcyBvbiBgcG9zdGAvYHBlcmlvZGljYCwgaG9sZHMgdGhlIFMzIGxheW91dC9uYW1pbmcgY29uc3RhbnQsIG1vdmVzIHZlcnNpb24gYXV0b21hdGlvbiBvbnRvIHRoZSBvdmVycmlkZSBsYXlvdXQsIGFuZCByZW1vdmVzIHRoZSBQYWNrZXIgcmVtbmFudHMuIFRoZSBvbmx5IGRpdmVyZ2VuY2UgaXMgdGhlIHBsYWNlaG9sZGVyIHNlY3JldCBub3RlZCBhYm92ZSwgd2hpY2ggaXMgaW5oZXJlbnQgdG8gdGhlIGF1dG9tYXRlZCBzZXNzaW9uIGFuZCBjYWxsZWQgb3V0IGluIGNvbW1pdCBgYzI1MjUxZGAuCgotLS0KCl9JbXBsZW1lbnRlZCBieSBbcGxhbndlcmstYWdlbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9wbGFud2Vyay9wbGFud2Vyay1hZ2VudCkgODQyOTllMiB3aXRoIENsYXVkZTpjbGF1ZGUtb3B1cy00LThfCg==
      patchset: 4b6c2ff45dba29008767ca83ead9fbec1349786c
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_0/github.com/osism/k8s-capi-images:
            canonical_name: github.com/osism/k8s-capi-images
            checkout: main
            commit: 7ed857ee5d5cf86dee0d40e8eb18c04fd71a468f
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
          untrusted/project_3/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
        playbooks:
        - path: untrusted/project_0/github.com/osism/k8s-capi-images/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: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/k8s-capi-images
        name: osism/k8s-capi-images
        short_name: k8s-capi-images
        src_dir: src/github.com/osism/k8s-capi-images
      projects:
        github.com/osism/k8s-capi-images:
          canonical_hostname: github.com
          canonical_name: github.com/osism/k8s-capi-images
          checkout: main
          checkout_description: zuul branch
          commit: 7ed857ee5d5cf86dee0d40e8eb18c04fd71a468f
          name: osism/k8s-capi-images
          required: false
          short_name: k8s-capi-images
          src_dir: src/github.com/osism/k8s-capi-images
      ref: refs/pull/336/head
      resources: {}
      tenant: osism
      timeout: 7200
      topic: null
      voting: true
