all:
  children:
    controllers:
      hosts:
        controller: null
    zuul_unreachable:
      hosts: {}
  hosts:
    controller:
      ansible_connection: ssh
      ansible_host: 162.253.55.57
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      ci: true
      cilium_helm_values:
        operator:
          replicas: 1
      cilium_ipv4_cidr: 172.24.0.0/16
      kube_vip_address: 172.17.0.100
      kube_vip_interface: '{{ ansible_facts[''default_ipv4''].interface }}'
      kubernetes_hostname: '{{ ansible_facts[''default_ipv4''].address }}'
      kubernetes_version: 1.34.0
      molecule_install_collection_siblings: true
      molecule_scenario: download-binaries
      nodepool:
        az: yul2
        cloud: public
        external_id: df66af98-d9e8-4c97-9b14-8db2741b7db7
        host_id: a01cb4e3d8698a10b6af7a23bf700f5af12859fba177738e8fa3822e
        interface_ip: 162.253.55.57
        label: debian-trixie
        node_properties: {}
        private_ipv4: 162.253.55.57
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.57
        public_ipv6: 2604:e100:1:0:f816:3eff:feb2:ef6a
        region: ca-ymq-1
        slot: null
      zuul_node:
        az: yul2
        cloud: public
        external_id: df66af98-d9e8-4c97-9b14-8db2741b7db7
        host_id: a01cb4e3d8698a10b6af7a23bf700f5af12859fba177738e8fa3822e
        interface_ip: 162.253.55.57
        label: debian-trixie
        node_properties: {}
        private_ipv4: 162.253.55.57
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.57
        public_ipv6: 2604:e100:1:0:f816:3eff:feb2:ef6a
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    ci: true
    cilium_helm_values:
      operator:
        replicas: 1
    kubernetes_version: 1.34.0
    molecule_install_collection_siblings: true
    molecule_scenario: download-binaries
    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 ansible-collection-kubernetes-molecule explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/ansible-collection-kubernetes/.zuul.yaml@main#49>'
      - '<Job ansible-collection-kubernetes-molecule-download-binaries explicit: None
        implied: {MatchAny:{ImpliedBranchMatcher:main}} source: vexxhost/ansible-collection-kubernetes/.zuul.yaml@main#154>'
      - '<Job ansible-collection-kubernetes-molecule-download-binaries explicit: None
        implied: None source: vexxhost/ansible-collection-kubernetes/.zuul.yaml@main#206>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 5a740f7dcc324fe28056f36a5fb77d44
      build_refs:
      - branch: main
        change: '310'
        change_message: "refactor(kubernetes): upgrade kubelets with tasks, one node
          at a time\n\nBuilds on #314 (and #306, #307, #308 below it) and includes
          their commits until they merge.\n\nThe kubelet upgrade ran inside the `kubeadm_upgrade_node`
          action plugin with `throttle: 1`. That plugin was Python which ran `kubeadm
          upgrade node`, restarted the kubelet and polled the API. This had three
          problems:\n\n- the steps were invisible in the play output and did nothing
          useful in check mode;\n- every new step (seeding resize state, migrating
          hashes, switching binaries) meant more Python;\n- the next node started
          as soon as the previous one reported Ready. Restarting a control plane kubelet
          restarts its static pods, so the API could drop again right after that and
          fail the next node's `kubeadm upgrade node`. This showed up in a 1.30 kubelet
          upgrade on a 3 control plane / 2 worker lab.\n\nThis PR replaces the plugin
          with `kubelet-upgrade-node.yml`, included for one node at a time, control
          plane nodes first, the same pattern #314 uses for the control plane. For
          each node whose kubelet is older than `kubernetes_version`, it:\n\n1. runs
          `kubeadm upgrade node` with the kubeadm patches from #308, retried in case
          the API blips;\n2. restarts the kubelet;\n3. waits for the kubelet's `/healthz`,
          for the local API server's `/readyz` on control plane nodes, and for the
          node to be Ready;\n4. on control plane nodes, runs the health checks from
          `health-check.yml` (#314) before moving on.\n\nThe action plugin is removed.
          A code search found nothing else in vexxhost that uses it.\n\nValidation:
          pre-commit (including ansible-lint) passes. The three-node `cluster-upgrade`
          Zuul job (1.33.4 \u2192 1.34.0) runs this path, and the AIO jobs cover the
          no-upgrade path on fresh clusters.\n\nSplit out of the in-place upgrade
          work.\n"
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/310
        commit_id: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
        patchset: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/ansible-collection-kubernetes
          name: vexxhost/ansible-collection-kubernetes
          short_name: ansible-collection-kubernetes
          src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
        src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
        topic: null
      buildset: ebddcf6efb0c43fcab540b0cdc92bad2
      buildset_refs:
      - branch: main
        change: '310'
        change_message: "refactor(kubernetes): upgrade kubelets with tasks, one node
          at a time\n\nBuilds on #314 (and #306, #307, #308 below it) and includes
          their commits until they merge.\n\nThe kubelet upgrade ran inside the `kubeadm_upgrade_node`
          action plugin with `throttle: 1`. That plugin was Python which ran `kubeadm
          upgrade node`, restarted the kubelet and polled the API. This had three
          problems:\n\n- the steps were invisible in the play output and did nothing
          useful in check mode;\n- every new step (seeding resize state, migrating
          hashes, switching binaries) meant more Python;\n- the next node started
          as soon as the previous one reported Ready. Restarting a control plane kubelet
          restarts its static pods, so the API could drop again right after that and
          fail the next node's `kubeadm upgrade node`. This showed up in a 1.30 kubelet
          upgrade on a 3 control plane / 2 worker lab.\n\nThis PR replaces the plugin
          with `kubelet-upgrade-node.yml`, included for one node at a time, control
          plane nodes first, the same pattern #314 uses for the control plane. For
          each node whose kubelet is older than `kubernetes_version`, it:\n\n1. runs
          `kubeadm upgrade node` with the kubeadm patches from #308, retried in case
          the API blips;\n2. restarts the kubelet;\n3. waits for the kubelet's `/healthz`,
          for the local API server's `/readyz` on control plane nodes, and for the
          node to be Ready;\n4. on control plane nodes, runs the health checks from
          `health-check.yml` (#314) before moving on.\n\nThe action plugin is removed.
          A code search found nothing else in vexxhost that uses it.\n\nValidation:
          pre-commit (including ansible-lint) passes. The three-node `cluster-upgrade`
          Zuul job (1.33.4 \u2192 1.34.0) runs this path, and the AIO jobs cover the
          no-upgrade path on fresh clusters.\n\nSplit out of the in-place upgrade
          work.\n"
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/310
        commit_id: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
        patchset: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/ansible-collection-kubernetes
          name: vexxhost/ansible-collection-kubernetes
          short_name: ansible-collection-kubernetes
          src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
        src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
        topic: null
      change: '310'
      change_message: "refactor(kubernetes): upgrade kubelets with tasks, one node
        at a time\n\nBuilds on #314 (and #306, #307, #308 below it) and includes their
        commits until they merge.\n\nThe kubelet upgrade ran inside the `kubeadm_upgrade_node`
        action plugin with `throttle: 1`. That plugin was Python which ran `kubeadm
        upgrade node`, restarted the kubelet and polled the API. This had three problems:\n\n-
        the steps were invisible in the play output and did nothing useful in check
        mode;\n- every new step (seeding resize state, migrating hashes, switching
        binaries) meant more Python;\n- the next node started as soon as the previous
        one reported Ready. Restarting a control plane kubelet restarts its static
        pods, so the API could drop again right after that and fail the next node's
        `kubeadm upgrade node`. This showed up in a 1.30 kubelet upgrade on a 3 control
        plane / 2 worker lab.\n\nThis PR replaces the plugin with `kubelet-upgrade-node.yml`,
        included for one node at a time, control plane nodes first, the same pattern
        #314 uses for the control plane. For each node whose kubelet is older than
        `kubernetes_version`, it:\n\n1. runs `kubeadm upgrade node` with the kubeadm
        patches from #308, retried in case the API blips;\n2. restarts the kubelet;\n3.
        waits for the kubelet's `/healthz`, for the local API server's `/readyz` on
        control plane nodes, and for the node to be Ready;\n4. on control plane nodes,
        runs the health checks from `health-check.yml` (#314) before moving on.\n\nThe
        action plugin is removed. A code search found nothing else in vexxhost that
        uses it.\n\nValidation: pre-commit (including ansible-lint) passes. The three-node
        `cluster-upgrade` Zuul job (1.33.4 \u2192 1.34.0) runs this path, and the
        AIO jobs cover the no-upgrade path on fresh clusters.\n\nSplit out of the
        in-place upgrade work.\n"
      change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/310
      child_jobs: []
      commit_id: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
      event_id: e9b846e0-d22f-11f1-9587-74ea7db9cf7c
      executor:
        hostname: 2d72f0692154
        inventory_file: /var/lib/zuul/builds/5a740f7dcc324fe28056f36a5fb77d44/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/5a740f7dcc324fe28056f36a5fb77d44/work/logs
        result_data_file: /var/lib/zuul/builds/5a740f7dcc324fe28056f36a5fb77d44/work/results.json
        src_root: /var/lib/zuul/builds/5a740f7dcc324fe28056f36a5fb77d44/work/src
        work_root: /var/lib/zuul/builds/5a740f7dcc324fe28056f36a5fb77d44/work
      include_vars: []
      items:
      - branch: main
        change: '310'
        change_message: "refactor(kubernetes): upgrade kubelets with tasks, one node
          at a time\n\nBuilds on #314 (and #306, #307, #308 below it) and includes
          their commits until they merge.\n\nThe kubelet upgrade ran inside the `kubeadm_upgrade_node`
          action plugin with `throttle: 1`. That plugin was Python which ran `kubeadm
          upgrade node`, restarted the kubelet and polled the API. This had three
          problems:\n\n- the steps were invisible in the play output and did nothing
          useful in check mode;\n- every new step (seeding resize state, migrating
          hashes, switching binaries) meant more Python;\n- the next node started
          as soon as the previous one reported Ready. Restarting a control plane kubelet
          restarts its static pods, so the API could drop again right after that and
          fail the next node's `kubeadm upgrade node`. This showed up in a 1.30 kubelet
          upgrade on a 3 control plane / 2 worker lab.\n\nThis PR replaces the plugin
          with `kubelet-upgrade-node.yml`, included for one node at a time, control
          plane nodes first, the same pattern #314 uses for the control plane. For
          each node whose kubelet is older than `kubernetes_version`, it:\n\n1. runs
          `kubeadm upgrade node` with the kubeadm patches from #308, retried in case
          the API blips;\n2. restarts the kubelet;\n3. waits for the kubelet's `/healthz`,
          for the local API server's `/readyz` on control plane nodes, and for the
          node to be Ready;\n4. on control plane nodes, runs the health checks from
          `health-check.yml` (#314) before moving on.\n\nThe action plugin is removed.
          A code search found nothing else in vexxhost that uses it.\n\nValidation:
          pre-commit (including ansible-lint) passes. The three-node `cluster-upgrade`
          Zuul job (1.33.4 \u2192 1.34.0) runs this path, and the AIO jobs cover the
          no-upgrade path on fresh clusters.\n\nSplit out of the in-place upgrade
          work.\n"
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/310
        commit_id: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
        patchset: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/ansible-collection-kubernetes
          name: vexxhost/ansible-collection-kubernetes
          short_name: ansible-collection-kubernetes
          src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
        topic: null
      job: ansible-collection-kubernetes-molecule-download-binaries
      jobtags: []
      max_attempts: 3
      message: cmVmYWN0b3Ioa3ViZXJuZXRlcyk6IHVwZ3JhZGUga3ViZWxldHMgd2l0aCB0YXNrcywgb25lIG5vZGUgYXQgYSB0aW1lCgpCdWlsZHMgb24gIzMxNCAoYW5kICMzMDYsICMzMDcsICMzMDggYmVsb3cgaXQpIGFuZCBpbmNsdWRlcyB0aGVpciBjb21taXRzIHVudGlsIHRoZXkgbWVyZ2UuCgpUaGUga3ViZWxldCB1cGdyYWRlIHJhbiBpbnNpZGUgdGhlIGBrdWJlYWRtX3VwZ3JhZGVfbm9kZWAgYWN0aW9uIHBsdWdpbiB3aXRoIGB0aHJvdHRsZTogMWAuIFRoYXQgcGx1Z2luIHdhcyBQeXRob24gd2hpY2ggcmFuIGBrdWJlYWRtIHVwZ3JhZGUgbm9kZWAsIHJlc3RhcnRlZCB0aGUga3ViZWxldCBhbmQgcG9sbGVkIHRoZSBBUEkuIFRoaXMgaGFkIHRocmVlIHByb2JsZW1zOgoKLSB0aGUgc3RlcHMgd2VyZSBpbnZpc2libGUgaW4gdGhlIHBsYXkgb3V0cHV0IGFuZCBkaWQgbm90aGluZyB1c2VmdWwgaW4gY2hlY2sgbW9kZTsKLSBldmVyeSBuZXcgc3RlcCAoc2VlZGluZyByZXNpemUgc3RhdGUsIG1pZ3JhdGluZyBoYXNoZXMsIHN3aXRjaGluZyBiaW5hcmllcykgbWVhbnQgbW9yZSBQeXRob247Ci0gdGhlIG5leHQgbm9kZSBzdGFydGVkIGFzIHNvb24gYXMgdGhlIHByZXZpb3VzIG9uZSByZXBvcnRlZCBSZWFkeS4gUmVzdGFydGluZyBhIGNvbnRyb2wgcGxhbmUga3ViZWxldCByZXN0YXJ0cyBpdHMgc3RhdGljIHBvZHMsIHNvIHRoZSBBUEkgY291bGQgZHJvcCBhZ2FpbiByaWdodCBhZnRlciB0aGF0IGFuZCBmYWlsIHRoZSBuZXh0IG5vZGUncyBga3ViZWFkbSB1cGdyYWRlIG5vZGVgLiBUaGlzIHNob3dlZCB1cCBpbiBhIDEuMzAga3ViZWxldCB1cGdyYWRlIG9uIGEgMyBjb250cm9sIHBsYW5lIC8gMiB3b3JrZXIgbGFiLgoKVGhpcyBQUiByZXBsYWNlcyB0aGUgcGx1Z2luIHdpdGggYGt1YmVsZXQtdXBncmFkZS1ub2RlLnltbGAsIGluY2x1ZGVkIGZvciBvbmUgbm9kZSBhdCBhIHRpbWUsIGNvbnRyb2wgcGxhbmUgbm9kZXMgZmlyc3QsIHRoZSBzYW1lIHBhdHRlcm4gIzMxNCB1c2VzIGZvciB0aGUgY29udHJvbCBwbGFuZS4gRm9yIGVhY2ggbm9kZSB3aG9zZSBrdWJlbGV0IGlzIG9sZGVyIHRoYW4gYGt1YmVybmV0ZXNfdmVyc2lvbmAsIGl0OgoKMS4gcnVucyBga3ViZWFkbSB1cGdyYWRlIG5vZGVgIHdpdGggdGhlIGt1YmVhZG0gcGF0Y2hlcyBmcm9tICMzMDgsIHJldHJpZWQgaW4gY2FzZSB0aGUgQVBJIGJsaXBzOwoyLiByZXN0YXJ0cyB0aGUga3ViZWxldDsKMy4gd2FpdHMgZm9yIHRoZSBrdWJlbGV0J3MgYC9oZWFsdGh6YCwgZm9yIHRoZSBsb2NhbCBBUEkgc2VydmVyJ3MgYC9yZWFkeXpgIG9uIGNvbnRyb2wgcGxhbmUgbm9kZXMsIGFuZCBmb3IgdGhlIG5vZGUgdG8gYmUgUmVhZHk7CjQuIG9uIGNvbnRyb2wgcGxhbmUgbm9kZXMsIHJ1bnMgdGhlIGhlYWx0aCBjaGVja3MgZnJvbSBgaGVhbHRoLWNoZWNrLnltbGAgKCMzMTQpIGJlZm9yZSBtb3Zpbmcgb24uCgpUaGUgYWN0aW9uIHBsdWdpbiBpcyByZW1vdmVkLiBBIGNvZGUgc2VhcmNoIGZvdW5kIG5vdGhpbmcgZWxzZSBpbiB2ZXh4aG9zdCB0aGF0IHVzZXMgaXQuCgpWYWxpZGF0aW9uOiBwcmUtY29tbWl0IChpbmNsdWRpbmcgYW5zaWJsZS1saW50KSBwYXNzZXMuIFRoZSB0aHJlZS1ub2RlIGBjbHVzdGVyLXVwZ3JhZGVgIFp1dWwgam9iICgxLjMzLjQg4oaSIDEuMzQuMCkgcnVucyB0aGlzIHBhdGgsIGFuZCB0aGUgQUlPIGpvYnMgY292ZXIgdGhlIG5vLXVwZ3JhZGUgcGF0aCBvbiBmcmVzaCBjbHVzdGVycy4KClNwbGl0IG91dCBvZiB0aGUgaW4tcGxhY2UgdXBncmFkZSB3b3JrLgo=
      patchset: b3ea58c764a50a5c35b99d1de5c401380cfbbe0e
      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: be52461cd48abccbf95b13a58b2551ac673d8ad7
          trusted/project_2/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: 4fd48825891421af0774bdd500fee36e111d80a6
          untrusted/project_0/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: 4fd48825891421af0774bdd500fee36e111d80a6
          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: be52461cd48abccbf95b13a58b2551ac673d8ad7
          untrusted/project_3/github.com/vexxhost/ansible-collection-kubernetes:
            canonical_name: github.com/vexxhost/ansible-collection-kubernetes
            checkout: main
            commit: 161e5d88c9633ae79d2fef9c1e1bf37d9c6531a7
          untrusted/project_4/opendev.org/openstack/openstack-helm:
            canonical_name: opendev.org/openstack/openstack-helm
            checkout: master
            commit: 3307478d82183ff8d297f2edcd718ad0bd65c4dd
        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/ansible-collection-kubernetes/test-playbooks/molecule/post.yml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/post_playbook_0/role_0/collection-kubernetes
            link_target: untrusted/project_3/github.com/vexxhost/ansible-collection-kubernetes
            role_path: ansible/post_playbook_0/role_0/collection-kubernetes/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/ansible-collection-kubernetes/test-playbooks/molecule/pre.yml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/pre_playbook_2/role_0/collection-kubernetes
            link_target: untrusted/project_3/github.com/vexxhost/ansible-collection-kubernetes
            role_path: ansible/pre_playbook_2/role_0/collection-kubernetes/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/ansible-collection-kubernetes
        name: vexxhost/ansible-collection-kubernetes
        short_name: ansible-collection-kubernetes
        src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
      projects:
        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: 0f4453f85ee993687a4cab860e3b55438144f920
          name: ansible-collections/ansible.posix
          required: true
          short_name: ansible.posix
          src_dir: src/github.com/ansible-collections/ansible.posix
        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: 1bdefe5f420bb2d38cf92ea109ca39e1d4372347
          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: 11d8912ad2b4da193a5f92f7131c69eeca7e9667
          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.library_inventory_filtering:
          canonical_hostname: github.com
          canonical_name: github.com/ansible-collections/community.library_inventory_filtering
          checkout: stable-1
          checkout_description: project default branch
          commit: 90cd245b3acbab4089041f36c5e83dd8081eae4e
          name: ansible-collections/community.library_inventory_filtering
          required: true
          short_name: community.library_inventory_filtering
          src_dir: src/github.com/ansible-collections/community.library_inventory_filtering
        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: 782672d2fdb0004d593440a3ddd4b9db014d9e4b
          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-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: 161e5d88c9633ae79d2fef9c1e1bf37d9c6531a7
          name: vexxhost/ansible-collection-kubernetes
          required: false
          short_name: ansible-collection-kubernetes
          src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
      ref: refs/pull/310/head
      resources: {}
      tenant: oss
      timeout: 1800
      topic: null
      voting: true
