all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    ubuntu-noble:
      ansible_connection: ssh
      ansible_host: 162.253.55.86
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: yul2
        cloud: public
        external_id: 889c5ed6-98c8-4955-be5e-6335df137a20
        host_id: 93674e3abb95d9a0157a37aef808315912c5b6797422061cb536c972
        interface_ip: 162.253.55.86
        label: ubuntu-noble
        node_properties: {}
        private_ipv4: 162.253.55.86
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.86
        public_ipv6: 2604:e100:1:0:f816:3eff:fe7a:c6f6
        region: ca-ymq-1
        slot: null
      zuul_node:
        az: yul2
        cloud: public
        external_id: 889c5ed6-98c8-4955-be5e-6335df137a20
        host_id: 93674e3abb95d9a0157a37aef808315912c5b6797422061cb536c972
        interface_ip: 162.253.55.86
        label: ubuntu-noble
        node_properties: {}
        private_ipv4: 162.253.55.86
        private_ipv6: null
        provider: yul1
        public_ipv4: 162.253.55.86
        public_ipv6: 2604:e100:1:0:f816:3eff:fe7a:c6f6
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-config/zuul.d/jobs.yaml@main#1>'
      - '<Job pre-commit explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-jobs/zuul.d/general-jobs.yaml@main#1>'
      - '<Job pre-commit explicit: None implied: None source: vexxhost/ansible-collection-kubernetes/.zuul.yaml@main#206>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 10bbb34f30d247758890984a451aac70
      build_refs:
      - branch: main
        change: '314'
        change_message: "feat(kubernetes): upgrade control plane nodes one at a time
          with health checks\n\nDuring a control plane upgrade, two etcd members can
          be down at once. After `kubeadm upgrade apply`, the role runs `kubeadm upgrade
          node` on the other control plane nodes with `throttle: 1`, which only waits
          for the previous node's command to return. kubeadm returns once it has replaced
          the node's static pod manifests, while etcd, the API server, the controller
          manager and the scheduler are still restarting. The next node can then start
          restarting its own. On a three-node control plane that's two of three etcd
          members down together, which loses quorum.\n\nThis PR upgrades the control
          plane nodes in a loop (`control-plane-upgrade-node.yml`). After `kubeadm
          upgrade apply`, and after each node that needed an upgrade, it waits (`health-check.yml`)
          for:\n\n- the API's `/readyz` endpoint;\n- one `etcd`, `kube-apiserver`,
          `kube-controller-manager` and `kube-scheduler` pod per control plane node,
          all Ready;\n- the CoreDNS rollout.\n\nNew defaults: `kubernetes_health_check_components`,
          `kubernetes_health_check_retries` (30), `kubernetes_health_check_delay`
          (10) and `kubernetes_health_check_timeout` (`300s`).\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.\n\nBuilds on #308 (and #306, #307
          below it), which change the same `kubeadm upgrade` commands, and includes
          their commits until they merge. #310 reuses `health-check.yml` for the kubelet
          upgrades. Split out of the in-place upgrade work.\n\n"
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/314
        commit_id: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
        patchset: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
        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: 6a05e3ffd643471f8d7708e352f0c573
      buildset_refs:
      - branch: main
        change: '314'
        change_message: "feat(kubernetes): upgrade control plane nodes one at a time
          with health checks\n\nDuring a control plane upgrade, two etcd members can
          be down at once. After `kubeadm upgrade apply`, the role runs `kubeadm upgrade
          node` on the other control plane nodes with `throttle: 1`, which only waits
          for the previous node's command to return. kubeadm returns once it has replaced
          the node's static pod manifests, while etcd, the API server, the controller
          manager and the scheduler are still restarting. The next node can then start
          restarting its own. On a three-node control plane that's two of three etcd
          members down together, which loses quorum.\n\nThis PR upgrades the control
          plane nodes in a loop (`control-plane-upgrade-node.yml`). After `kubeadm
          upgrade apply`, and after each node that needed an upgrade, it waits (`health-check.yml`)
          for:\n\n- the API's `/readyz` endpoint;\n- one `etcd`, `kube-apiserver`,
          `kube-controller-manager` and `kube-scheduler` pod per control plane node,
          all Ready;\n- the CoreDNS rollout.\n\nNew defaults: `kubernetes_health_check_components`,
          `kubernetes_health_check_retries` (30), `kubernetes_health_check_delay`
          (10) and `kubernetes_health_check_timeout` (`300s`).\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.\n\nBuilds on #308 (and #306, #307
          below it), which change the same `kubeadm upgrade` commands, and includes
          their commits until they merge. #310 reuses `health-check.yml` for the kubelet
          upgrades. Split out of the in-place upgrade work.\n\n"
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/314
        commit_id: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
        patchset: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
        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: '314'
      change_message: "feat(kubernetes): upgrade control plane nodes one at a time
        with health checks\n\nDuring a control plane upgrade, two etcd members can
        be down at once. After `kubeadm upgrade apply`, the role runs `kubeadm upgrade
        node` on the other control plane nodes with `throttle: 1`, which only waits
        for the previous node's command to return. kubeadm returns once it has replaced
        the node's static pod manifests, while etcd, the API server, the controller
        manager and the scheduler are still restarting. The next node can then start
        restarting its own. On a three-node control plane that's two of three etcd
        members down together, which loses quorum.\n\nThis PR upgrades the control
        plane nodes in a loop (`control-plane-upgrade-node.yml`). After `kubeadm upgrade
        apply`, and after each node that needed an upgrade, it waits (`health-check.yml`)
        for:\n\n- the API's `/readyz` endpoint;\n- one `etcd`, `kube-apiserver`, `kube-controller-manager`
        and `kube-scheduler` pod per control plane node, all Ready;\n- the CoreDNS
        rollout.\n\nNew defaults: `kubernetes_health_check_components`, `kubernetes_health_check_retries`
        (30), `kubernetes_health_check_delay` (10) and `kubernetes_health_check_timeout`
        (`300s`).\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.\n\nBuilds
        on #308 (and #306, #307 below it), which change the same `kubeadm upgrade`
        commands, and includes their commits until they merge. #310 reuses `health-check.yml`
        for the kubelet upgrades. Split out of the in-place upgrade work.\n\n"
      change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/314
      child_jobs: []
      commit_id: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
      event_id: e84025d0-d22f-11f1-9db4-32621d222081
      executor:
        hostname: 2d72f0692154
        inventory_file: /var/lib/zuul/builds/10bbb34f30d247758890984a451aac70/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/10bbb34f30d247758890984a451aac70/work/logs
        result_data_file: /var/lib/zuul/builds/10bbb34f30d247758890984a451aac70/work/results.json
        src_root: /var/lib/zuul/builds/10bbb34f30d247758890984a451aac70/work/src
        work_root: /var/lib/zuul/builds/10bbb34f30d247758890984a451aac70/work
      include_vars: []
      items:
      - branch: main
        change: '314'
        change_message: "feat(kubernetes): upgrade control plane nodes one at a time
          with health checks\n\nDuring a control plane upgrade, two etcd members can
          be down at once. After `kubeadm upgrade apply`, the role runs `kubeadm upgrade
          node` on the other control plane nodes with `throttle: 1`, which only waits
          for the previous node's command to return. kubeadm returns once it has replaced
          the node's static pod manifests, while etcd, the API server, the controller
          manager and the scheduler are still restarting. The next node can then start
          restarting its own. On a three-node control plane that's two of three etcd
          members down together, which loses quorum.\n\nThis PR upgrades the control
          plane nodes in a loop (`control-plane-upgrade-node.yml`). After `kubeadm
          upgrade apply`, and after each node that needed an upgrade, it waits (`health-check.yml`)
          for:\n\n- the API's `/readyz` endpoint;\n- one `etcd`, `kube-apiserver`,
          `kube-controller-manager` and `kube-scheduler` pod per control plane node,
          all Ready;\n- the CoreDNS rollout.\n\nNew defaults: `kubernetes_health_check_components`,
          `kubernetes_health_check_retries` (30), `kubernetes_health_check_delay`
          (10) and `kubernetes_health_check_timeout` (`300s`).\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.\n\nBuilds on #308 (and #306, #307
          below it), which change the same `kubeadm upgrade` commands, and includes
          their commits until they merge. #310 reuses `health-check.yml` for the kubelet
          upgrades. Split out of the in-place upgrade work.\n\n"
        change_url: https://github.com/vexxhost/ansible-collection-kubernetes/pull/314
        commit_id: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
        patchset: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
        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: pre-commit
      jobtags: []
      max_attempts: 3
      message: ZmVhdChrdWJlcm5ldGVzKTogdXBncmFkZSBjb250cm9sIHBsYW5lIG5vZGVzIG9uZSBhdCBhIHRpbWUgd2l0aCBoZWFsdGggY2hlY2tzCgpEdXJpbmcgYSBjb250cm9sIHBsYW5lIHVwZ3JhZGUsIHR3byBldGNkIG1lbWJlcnMgY2FuIGJlIGRvd24gYXQgb25jZS4gQWZ0ZXIgYGt1YmVhZG0gdXBncmFkZSBhcHBseWAsIHRoZSByb2xlIHJ1bnMgYGt1YmVhZG0gdXBncmFkZSBub2RlYCBvbiB0aGUgb3RoZXIgY29udHJvbCBwbGFuZSBub2RlcyB3aXRoIGB0aHJvdHRsZTogMWAsIHdoaWNoIG9ubHkgd2FpdHMgZm9yIHRoZSBwcmV2aW91cyBub2RlJ3MgY29tbWFuZCB0byByZXR1cm4uIGt1YmVhZG0gcmV0dXJucyBvbmNlIGl0IGhhcyByZXBsYWNlZCB0aGUgbm9kZSdzIHN0YXRpYyBwb2QgbWFuaWZlc3RzLCB3aGlsZSBldGNkLCB0aGUgQVBJIHNlcnZlciwgdGhlIGNvbnRyb2xsZXIgbWFuYWdlciBhbmQgdGhlIHNjaGVkdWxlciBhcmUgc3RpbGwgcmVzdGFydGluZy4gVGhlIG5leHQgbm9kZSBjYW4gdGhlbiBzdGFydCByZXN0YXJ0aW5nIGl0cyBvd24uIE9uIGEgdGhyZWUtbm9kZSBjb250cm9sIHBsYW5lIHRoYXQncyB0d28gb2YgdGhyZWUgZXRjZCBtZW1iZXJzIGRvd24gdG9nZXRoZXIsIHdoaWNoIGxvc2VzIHF1b3J1bS4KClRoaXMgUFIgdXBncmFkZXMgdGhlIGNvbnRyb2wgcGxhbmUgbm9kZXMgaW4gYSBsb29wIChgY29udHJvbC1wbGFuZS11cGdyYWRlLW5vZGUueW1sYCkuIEFmdGVyIGBrdWJlYWRtIHVwZ3JhZGUgYXBwbHlgLCBhbmQgYWZ0ZXIgZWFjaCBub2RlIHRoYXQgbmVlZGVkIGFuIHVwZ3JhZGUsIGl0IHdhaXRzIChgaGVhbHRoLWNoZWNrLnltbGApIGZvcjoKCi0gdGhlIEFQSSdzIGAvcmVhZHl6YCBlbmRwb2ludDsKLSBvbmUgYGV0Y2RgLCBga3ViZS1hcGlzZXJ2ZXJgLCBga3ViZS1jb250cm9sbGVyLW1hbmFnZXJgIGFuZCBga3ViZS1zY2hlZHVsZXJgIHBvZCBwZXIgY29udHJvbCBwbGFuZSBub2RlLCBhbGwgUmVhZHk7Ci0gdGhlIENvcmVETlMgcm9sbG91dC4KCk5ldyBkZWZhdWx0czogYGt1YmVybmV0ZXNfaGVhbHRoX2NoZWNrX2NvbXBvbmVudHNgLCBga3ViZXJuZXRlc19oZWFsdGhfY2hlY2tfcmV0cmllc2AgKDMwKSwgYGt1YmVybmV0ZXNfaGVhbHRoX2NoZWNrX2RlbGF5YCAoMTApIGFuZCBga3ViZXJuZXRlc19oZWFsdGhfY2hlY2tfdGltZW91dGAgKGAzMDBzYCkuCgpWYWxpZGF0aW9uOiBwcmUtY29tbWl0IChpbmNsdWRpbmcgYW5zaWJsZS1saW50KSBwYXNzZXMuIFRoZSB0aHJlZS1ub2RlIGBjbHVzdGVyLXVwZ3JhZGVgIFp1dWwgam9iICgxLjMzLjQg4oaSIDEuMzQuMCkgcnVucyB0aGlzIHBhdGguCgpCdWlsZHMgb24gIzMwOCAoYW5kICMzMDYsICMzMDcgYmVsb3cgaXQpLCB3aGljaCBjaGFuZ2UgdGhlIHNhbWUgYGt1YmVhZG0gdXBncmFkZWAgY29tbWFuZHMsIGFuZCBpbmNsdWRlcyB0aGVpciBjb21taXRzIHVudGlsIHRoZXkgbWVyZ2UuICMzMTAgcmV1c2VzIGBoZWFsdGgtY2hlY2sueW1sYCBmb3IgdGhlIGt1YmVsZXQgdXBncmFkZXMuIFNwbGl0IG91dCBvZiB0aGUgaW4tcGxhY2UgdXBncmFkZSB3b3JrLgoK
      patchset: df59681eb93c2f0a5b7152df48ae13d37e4ce6e7
      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
        playbooks:
        - path: untrusted/project_0/github.com/vexxhost/zuul-jobs/playbooks/pre-commit/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: 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_0/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_0/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_0/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_0/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_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
        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/pre-commit/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
      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/vexxhost/ansible-collection-kubernetes:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/ansible-collection-kubernetes
          checkout: main
          checkout_description: zuul branch
          commit: 82e9998c9b417216a961f53752425b644047ace6
          name: vexxhost/ansible-collection-kubernetes
          required: false
          short_name: ansible-collection-kubernetes
          src_dir: src/github.com/vexxhost/ansible-collection-kubernetes
      ref: refs/pull/314/head
      resources: {}
      tenant: oss
      timeout: 1800
      topic: null
      voting: true
