all:
  children:
    controllers:
      hosts:
        controller: null
    zuul_unreachable:
      hosts: {}
  hosts:
    controller:
      ansible_connection: ssh
      ansible_host: 162.253.55.95
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      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: aio
      nodepool:
        az: yul2
        cloud: public
        external_id: 6dfd730e-752a-4263-bd27-51f99264ec09
        host_id: dd2e1d1dd8d272e7cc172fae0c5dbd34541b0549d31464f468251769
        interface_ip: 162.253.55.95
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 162.253.55.95
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.95
        public_ipv6: 2604:e100:1:0:f816:3eff:fe7c:f0c2
        region: ca-ymq-1
        slot: null
      zuul_node:
        az: yul2
        cloud: public
        external_id: 6dfd730e-752a-4263-bd27-51f99264ec09
        host_id: dd2e1d1dd8d272e7cc172fae0c5dbd34541b0549d31464f468251769
        interface_ip: 162.253.55.95
        label: ubuntu-jammy
        node_properties: {}
        private_ipv4: 162.253.55.95
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.95
        public_ipv6: 2604:e100:1:0:f816:3eff:fe7c:f0c2
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    cilium_helm_values:
      operator:
        replicas: 1
    kubernetes_version: 1.34.0
    molecule_install_collection_siblings: true
    molecule_scenario: aio
    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-aio explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/ansible-collection-kubernetes/.zuul.yaml@main#80>'
      - '<Job ansible-collection-kubernetes-molecule-aio-ubuntu-jammy explicit: None
        implied: {MatchAny:{ImpliedBranchMatcher:main}} source: vexxhost/ansible-collection-kubernetes/.zuul.yaml@main#100>'
      - '<Job ansible-collection-kubernetes-molecule-aio-ubuntu-jammy explicit: None
        implied: None source: vexxhost/ansible-collection-kubernetes/.zuul.yaml@main#206>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: b8e2677b375240acb8430259f8b8a44b
      build_refs:
      - branch: main
        change: '308'
        change_message: 'feat(kubernetes): keep the CoreDNS node selector during upgrades


          Builds on #306 (and #307 below it) and includes their commits until they
          merge.


          During an upgrade, CoreDNS loses its `kubernetes_coredns_node_selector`
          and can be scheduled onto any node. kubeadm recreates the CoreDNS Deployment
          in `kubeadm upgrade apply`, and from 1.32 also in `kubeadm upgrade node`
          on control plane nodes once they are all upgraded. The selector only comes
          back when the role''s last task sets it again.


          kubeadm 1.31 added a `corednsdeployment` patch target, so this PR keeps
          the selector in place through kubeadm itself:


          - adds `kubernetes_kubeadm_patches_dir` (default `/etc/kubernetes/kubeadm-patches`)
          and renders `corednsdeployment0.yaml` there with the node selector, on 1.31+
          when a selector is set. Otherwise the file is removed;

          - points `patches.directory` at it in the `v1beta4` `InitConfiguration`
          and `JoinConfiguration`;

          - passes `--patches` to `kubeadm upgrade apply` and the control plane `kubeadm
          upgrade node` on 1.31+ (`kubernetes_kubeadm_upgrade_args` in the role vars).
          The kubelet upgrade''s `kubeadm upgrade node` picks this up in #310.


          **Validation**


          - Ran `kubeadm init phase addon coredns --print-manifest` (1.36.2) and `--dry-run`
          (1.31.14) with the rendered patch. kubeadm reports `Applied patch ... to
          target "corednsdeployment"`, and the Deployment''s selector becomes `{kubernetes.io/os:
          linux, openstack-control-plane: enabled}`.

          - Confirmed `--patches` exists on `upgrade apply` and `upgrade node` in
          kubeadm 1.31.14 and 1.36.2.

          - Unit tests cover the patch rendering and `patches.directory` per version.
          pre-commit passes.


          Split out of the in-place upgrade work.

          '
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/308
        commit_id: 274067caf28aa1174554d28e338100d99cf007d7
        patchset: 274067caf28aa1174554d28e338100d99cf007d7
        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: 56ed88187e8c4c24898b6b630305c5af
      buildset_refs:
      - branch: main
        change: '308'
        change_message: 'feat(kubernetes): keep the CoreDNS node selector during upgrades


          Builds on #306 (and #307 below it) and includes their commits until they
          merge.


          During an upgrade, CoreDNS loses its `kubernetes_coredns_node_selector`
          and can be scheduled onto any node. kubeadm recreates the CoreDNS Deployment
          in `kubeadm upgrade apply`, and from 1.32 also in `kubeadm upgrade node`
          on control plane nodes once they are all upgraded. The selector only comes
          back when the role''s last task sets it again.


          kubeadm 1.31 added a `corednsdeployment` patch target, so this PR keeps
          the selector in place through kubeadm itself:


          - adds `kubernetes_kubeadm_patches_dir` (default `/etc/kubernetes/kubeadm-patches`)
          and renders `corednsdeployment0.yaml` there with the node selector, on 1.31+
          when a selector is set. Otherwise the file is removed;

          - points `patches.directory` at it in the `v1beta4` `InitConfiguration`
          and `JoinConfiguration`;

          - passes `--patches` to `kubeadm upgrade apply` and the control plane `kubeadm
          upgrade node` on 1.31+ (`kubernetes_kubeadm_upgrade_args` in the role vars).
          The kubelet upgrade''s `kubeadm upgrade node` picks this up in #310.


          **Validation**


          - Ran `kubeadm init phase addon coredns --print-manifest` (1.36.2) and `--dry-run`
          (1.31.14) with the rendered patch. kubeadm reports `Applied patch ... to
          target "corednsdeployment"`, and the Deployment''s selector becomes `{kubernetes.io/os:
          linux, openstack-control-plane: enabled}`.

          - Confirmed `--patches` exists on `upgrade apply` and `upgrade node` in
          kubeadm 1.31.14 and 1.36.2.

          - Unit tests cover the patch rendering and `patches.directory` per version.
          pre-commit passes.


          Split out of the in-place upgrade work.

          '
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/308
        commit_id: 274067caf28aa1174554d28e338100d99cf007d7
        patchset: 274067caf28aa1174554d28e338100d99cf007d7
        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: '308'
      change_message: 'feat(kubernetes): keep the CoreDNS node selector during upgrades


        Builds on #306 (and #307 below it) and includes their commits until they merge.


        During an upgrade, CoreDNS loses its `kubernetes_coredns_node_selector` and
        can be scheduled onto any node. kubeadm recreates the CoreDNS Deployment in
        `kubeadm upgrade apply`, and from 1.32 also in `kubeadm upgrade node` on control
        plane nodes once they are all upgraded. The selector only comes back when
        the role''s last task sets it again.


        kubeadm 1.31 added a `corednsdeployment` patch target, so this PR keeps the
        selector in place through kubeadm itself:


        - adds `kubernetes_kubeadm_patches_dir` (default `/etc/kubernetes/kubeadm-patches`)
        and renders `corednsdeployment0.yaml` there with the node selector, on 1.31+
        when a selector is set. Otherwise the file is removed;

        - points `patches.directory` at it in the `v1beta4` `InitConfiguration` and
        `JoinConfiguration`;

        - passes `--patches` to `kubeadm upgrade apply` and the control plane `kubeadm
        upgrade node` on 1.31+ (`kubernetes_kubeadm_upgrade_args` in the role vars).
        The kubelet upgrade''s `kubeadm upgrade node` picks this up in #310.


        **Validation**


        - Ran `kubeadm init phase addon coredns --print-manifest` (1.36.2) and `--dry-run`
        (1.31.14) with the rendered patch. kubeadm reports `Applied patch ... to target
        "corednsdeployment"`, and the Deployment''s selector becomes `{kubernetes.io/os:
        linux, openstack-control-plane: enabled}`.

        - Confirmed `--patches` exists on `upgrade apply` and `upgrade node` in kubeadm
        1.31.14 and 1.36.2.

        - Unit tests cover the patch rendering and `patches.directory` per version.
        pre-commit passes.


        Split out of the in-place upgrade work.

        '
      change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/308
      child_jobs: []
      commit_id: 274067caf28aa1174554d28e338100d99cf007d7
      event_id: e6edb530-d22f-11f1-97c1-43d60d90f87a
      executor:
        hostname: 2d72f0692154
        inventory_file: /var/lib/zuul/builds/b8e2677b375240acb8430259f8b8a44b/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/b8e2677b375240acb8430259f8b8a44b/work/logs
        result_data_file: /var/lib/zuul/builds/b8e2677b375240acb8430259f8b8a44b/work/results.json
        src_root: /var/lib/zuul/builds/b8e2677b375240acb8430259f8b8a44b/work/src
        work_root: /var/lib/zuul/builds/b8e2677b375240acb8430259f8b8a44b/work
      include_vars: []
      items:
      - branch: main
        change: '308'
        change_message: 'feat(kubernetes): keep the CoreDNS node selector during upgrades


          Builds on #306 (and #307 below it) and includes their commits until they
          merge.


          During an upgrade, CoreDNS loses its `kubernetes_coredns_node_selector`
          and can be scheduled onto any node. kubeadm recreates the CoreDNS Deployment
          in `kubeadm upgrade apply`, and from 1.32 also in `kubeadm upgrade node`
          on control plane nodes once they are all upgraded. The selector only comes
          back when the role''s last task sets it again.


          kubeadm 1.31 added a `corednsdeployment` patch target, so this PR keeps
          the selector in place through kubeadm itself:


          - adds `kubernetes_kubeadm_patches_dir` (default `/etc/kubernetes/kubeadm-patches`)
          and renders `corednsdeployment0.yaml` there with the node selector, on 1.31+
          when a selector is set. Otherwise the file is removed;

          - points `patches.directory` at it in the `v1beta4` `InitConfiguration`
          and `JoinConfiguration`;

          - passes `--patches` to `kubeadm upgrade apply` and the control plane `kubeadm
          upgrade node` on 1.31+ (`kubernetes_kubeadm_upgrade_args` in the role vars).
          The kubelet upgrade''s `kubeadm upgrade node` picks this up in #310.


          **Validation**


          - Ran `kubeadm init phase addon coredns --print-manifest` (1.36.2) and `--dry-run`
          (1.31.14) with the rendered patch. kubeadm reports `Applied patch ... to
          target "corednsdeployment"`, and the Deployment''s selector becomes `{kubernetes.io/os:
          linux, openstack-control-plane: enabled}`.

          - Confirmed `--patches` exists on `upgrade apply` and `upgrade node` in
          kubeadm 1.31.14 and 1.36.2.

          - Unit tests cover the patch rendering and `patches.directory` per version.
          pre-commit passes.


          Split out of the in-place upgrade work.

          '
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/308
        commit_id: 274067caf28aa1174554d28e338100d99cf007d7
        patchset: 274067caf28aa1174554d28e338100d99cf007d7
        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-aio-ubuntu-jammy
      jobtags: []
      max_attempts: 3
      message: ZmVhdChrdWJlcm5ldGVzKToga2VlcCB0aGUgQ29yZUROUyBub2RlIHNlbGVjdG9yIGR1cmluZyB1cGdyYWRlcwoKQnVpbGRzIG9uICMzMDYgKGFuZCAjMzA3IGJlbG93IGl0KSBhbmQgaW5jbHVkZXMgdGhlaXIgY29tbWl0cyB1bnRpbCB0aGV5IG1lcmdlLgoKRHVyaW5nIGFuIHVwZ3JhZGUsIENvcmVETlMgbG9zZXMgaXRzIGBrdWJlcm5ldGVzX2NvcmVkbnNfbm9kZV9zZWxlY3RvcmAgYW5kIGNhbiBiZSBzY2hlZHVsZWQgb250byBhbnkgbm9kZS4ga3ViZWFkbSByZWNyZWF0ZXMgdGhlIENvcmVETlMgRGVwbG95bWVudCBpbiBga3ViZWFkbSB1cGdyYWRlIGFwcGx5YCwgYW5kIGZyb20gMS4zMiBhbHNvIGluIGBrdWJlYWRtIHVwZ3JhZGUgbm9kZWAgb24gY29udHJvbCBwbGFuZSBub2RlcyBvbmNlIHRoZXkgYXJlIGFsbCB1cGdyYWRlZC4gVGhlIHNlbGVjdG9yIG9ubHkgY29tZXMgYmFjayB3aGVuIHRoZSByb2xlJ3MgbGFzdCB0YXNrIHNldHMgaXQgYWdhaW4uCgprdWJlYWRtIDEuMzEgYWRkZWQgYSBgY29yZWRuc2RlcGxveW1lbnRgIHBhdGNoIHRhcmdldCwgc28gdGhpcyBQUiBrZWVwcyB0aGUgc2VsZWN0b3IgaW4gcGxhY2UgdGhyb3VnaCBrdWJlYWRtIGl0c2VsZjoKCi0gYWRkcyBga3ViZXJuZXRlc19rdWJlYWRtX3BhdGNoZXNfZGlyYCAoZGVmYXVsdCBgL2V0Yy9rdWJlcm5ldGVzL2t1YmVhZG0tcGF0Y2hlc2ApIGFuZCByZW5kZXJzIGBjb3JlZG5zZGVwbG95bWVudDAueWFtbGAgdGhlcmUgd2l0aCB0aGUgbm9kZSBzZWxlY3Rvciwgb24gMS4zMSsgd2hlbiBhIHNlbGVjdG9yIGlzIHNldC4gT3RoZXJ3aXNlIHRoZSBmaWxlIGlzIHJlbW92ZWQ7Ci0gcG9pbnRzIGBwYXRjaGVzLmRpcmVjdG9yeWAgYXQgaXQgaW4gdGhlIGB2MWJldGE0YCBgSW5pdENvbmZpZ3VyYXRpb25gIGFuZCBgSm9pbkNvbmZpZ3VyYXRpb25gOwotIHBhc3NlcyBgLS1wYXRjaGVzYCB0byBga3ViZWFkbSB1cGdyYWRlIGFwcGx5YCBhbmQgdGhlIGNvbnRyb2wgcGxhbmUgYGt1YmVhZG0gdXBncmFkZSBub2RlYCBvbiAxLjMxKyAoYGt1YmVybmV0ZXNfa3ViZWFkbV91cGdyYWRlX2FyZ3NgIGluIHRoZSByb2xlIHZhcnMpLiBUaGUga3ViZWxldCB1cGdyYWRlJ3MgYGt1YmVhZG0gdXBncmFkZSBub2RlYCBwaWNrcyB0aGlzIHVwIGluICMzMTAuCgoqKlZhbGlkYXRpb24qKgoKLSBSYW4gYGt1YmVhZG0gaW5pdCBwaGFzZSBhZGRvbiBjb3JlZG5zIC0tcHJpbnQtbWFuaWZlc3RgICgxLjM2LjIpIGFuZCBgLS1kcnktcnVuYCAoMS4zMS4xNCkgd2l0aCB0aGUgcmVuZGVyZWQgcGF0Y2guIGt1YmVhZG0gcmVwb3J0cyBgQXBwbGllZCBwYXRjaCAuLi4gdG8gdGFyZ2V0ICJjb3JlZG5zZGVwbG95bWVudCJgLCBhbmQgdGhlIERlcGxveW1lbnQncyBzZWxlY3RvciBiZWNvbWVzIGB7a3ViZXJuZXRlcy5pby9vczogbGludXgsIG9wZW5zdGFjay1jb250cm9sLXBsYW5lOiBlbmFibGVkfWAuCi0gQ29uZmlybWVkIGAtLXBhdGNoZXNgIGV4aXN0cyBvbiBgdXBncmFkZSBhcHBseWAgYW5kIGB1cGdyYWRlIG5vZGVgIGluIGt1YmVhZG0gMS4zMS4xNCBhbmQgMS4zNi4yLgotIFVuaXQgdGVzdHMgY292ZXIgdGhlIHBhdGNoIHJlbmRlcmluZyBhbmQgYHBhdGNoZXMuZGlyZWN0b3J5YCBwZXIgdmVyc2lvbi4gcHJlLWNvbW1pdCBwYXNzZXMuCgpTcGxpdCBvdXQgb2YgdGhlIGluLXBsYWNlIHVwZ3JhZGUgd29yay4K
      patchset: 274067caf28aa1174554d28e338100d99cf007d7
      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: 08f026b5d2b98c495d7236e7a719f016063f22d0
          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: 08f026b5d2b98c495d7236e7a719f016063f22d0
          name: vexxhost/ansible-collection-kubernetes
          required: false
          short_name: ansible-collection-kubernetes
          src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
      ref: refs/pull/308/head
      resources: {}
      tenant: oss
      timeout: 1800
      topic: null
      voting: true
