[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-03-17T19:47:05.660015Z",
                    "start": "2026-03-17T19:47:03.210309Z"
                },
                "id": "0242ac17-0011-e1bb-d42f-000000000004",
                "name": "localhost"
            },
            "tasks": [
                {
                    "hosts": {
                        "localhost": {
                            "action": "gather_facts",
                            "ansible_facts": {
                                "ansible_apparmor": {
                                    "status": "disabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "NA",
                                "ansible_bios_vendor": "NA",
                                "ansible_bios_version": "NA",
                                "ansible_board_asset_tag": "NA",
                                "ansible_board_name": "NA",
                                "ansible_board_serial": "NA",
                                "ansible_board_vendor": "NA",
                                "ansible_board_version": "NA",
                                "ansible_chassis_asset_tag": "NA",
                                "ansible_chassis_serial": "NA",
                                "ansible_chassis_vendor": "NA",
                                "ansible_chassis_version": "NA",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": "ttyS0",
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_date_time": {
                                    "date": "2026-03-17",
                                    "day": "17",
                                    "epoch": "1773776823",
                                    "epoch_int": "1773776823",
                                    "hour": "19",
                                    "iso8601": "2026-03-17T19:47:03Z",
                                    "iso8601_basic": "20260317T194703795591",
                                    "iso8601_basic_short": "20260317T194703",
                                    "iso8601_micro": "2026-03-17T19:47:03.795591Z",
                                    "minute": "47",
                                    "month": "03",
                                    "second": "03",
                                    "time": "19:47:03",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Tuesday",
                                    "weekday_number": "2",
                                    "weeknumber": "11",
                                    "year": "2026"
                                },
                                "ansible_devices": {},
                                "ansible_distribution": "Debian",
                                "ansible_distribution_major_version": "12",
                                "ansible_distribution_release": "bookworm",
                                "ansible_distribution_version": "12",
                                "ansible_dns": {
                                    "nameservers": [
                                        "127.0.0.11"
                                    ],
                                    "options": {
                                        "edns0": true,
                                        "ndots": "0",
                                        "trust-ad": true
                                    },
                                    "search": [
                                        "openstacklocal"
                                    ]
                                },
                                "ansible_domain": "",
                                "ansible_effective_group_id": 0,
                                "ansible_effective_user_id": 0,
                                "ansible_env": {
                                    "ANSIBLE_CONFIG": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work",
                                    "HOSTNAME": "0a8996d2b663",
                                    "LANG": "C.UTF-8",
                                    "PATH": "/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                    "PWD": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base",
                                    "PYTHONPATH": "/var/lib/zuul/ansible/9",
                                    "PYTHON_SHA256": "8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78",
                                    "PYTHON_VERSION": "3.11.14",
                                    "SSH_AGENT_PID": "668738",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-YpuxNs4eQTtj/agent.668733",
                                    "TMP": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/ansible/logging.json",
                                    "ZUUL_OUTPUT_MAX_BYTES": "1073741824"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "NA",
                                "ansible_fqdn": "0a8996d2b663",
                                "ansible_hostname": "0a8996d2b663",
                                "ansible_hostnqn": "",
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "5.15.0-130-generic",
                                "ansible_kernel_version": "#140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024",
                                "ansible_loadavg": {
                                    "15m": 5.9912109375,
                                    "1m": 12.20263671875,
                                    "5m": 6.57177734375
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 4987,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 12476,
                                        "used": 19614
                                    },
                                    "real": {
                                        "free": 4987,
                                        "total": 32090,
                                        "used": 27103
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 221365284,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 42575433,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 63291235,
                                        "inode_total": 67108864,
                                        "inode_used": 3817629,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 906712203264,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8720640,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31880940,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16598728,
                                        "inode_total": 20643840,
                                        "inode_used": 4045112,
                                        "mount": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35719741440,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    }
                                ],
                                "ansible_nodename": "0a8996d2b663",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": [
                                        "tty1",
                                        "ttyS0"
                                    ],
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_processor": [
                                    "0",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "1",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "2",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "3",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "4",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "5",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "6",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "7",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "8",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "9",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "10",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "11",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "12",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "13",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "14",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "15",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 16,
                                "ansible_processor_nproc": 16,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 16,
                                "ansible_product_name": "NA",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "NA",
                                "ansible_python": {
                                    "executable": "/usr/local/lib/zuul/ansible/9/bin/python",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 14,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        14,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.14",
                                "ansible_real_group_id": 0,
                                "ansible_real_user_id": 0,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "bwrap",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": "N/A",
                                "ansible_system_capabilities_enforced": "N/A",
                                "ansible_system_vendor": "NA",
                                "ansible_uptime_seconds": 37440553,
                                "ansible_user_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work",
                                "ansible_user_gecos": "root",
                                "ansible_user_gid": 0,
                                "ansible_user_id": "root",
                                "ansible_user_shell": "/bin/bash",
                                "ansible_user_uid": 0,
                                "ansible_userspace_architecture": "x86_64",
                                "ansible_userspace_bits": "64",
                                "ansible_virtualization_role": "host",
                                "ansible_virtualization_tech_guest": [],
                                "ansible_virtualization_tech_host": [
                                    "kvm"
                                ],
                                "ansible_virtualization_type": "kvm",
                                "gather_subset": [
                                    "all"
                                ],
                                "module_setup": true
                            },
                            "changed": false,
                            "deprecations": [],
                            "warnings": []
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:04.096703Z",
                            "start": "2026-03-17T19:47:03.217705Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-00000000002c",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:04.122259Z",
                            "start": "2026-03-17T19:47:04.101814Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-00000000000a",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "78d/oss/78dbca21a77c4746a7a74c42711667c6"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000056",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:04.164060Z",
                            "start": "2026-03-17T19:47:04.134273Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-000000000058",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.16\nJob: ansible-collection-kubernetes-molecule-cluster-upgrade\nPipeline: check\nExecutor: 0a8996d2b663\nTriggered by: https://github.com/vexxhost/ansible-collection-kubernetes/pull/238\nEvent ID: b11771e0-2239-11f1-9cf9-cf3d0ed948e5\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:04.210451Z",
                            "start": "2026-03-17T19:47:04.171303Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-00000000000b",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-1\nHostname: np0000159561\nUsername: zuul\nDistro: Debian 13.3\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.19.213.29\n",
                                    "zj_item": "controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-2\nHostname: np0000159562\nUsername: zuul\nDistro: Debian 13.3\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.19.213.201\n",
                                    "zj_item": "controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-3\nHostname: np0000159563\nUsername: zuul\nDistro: Debian 13.3\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.19.213.175\n",
                                    "zj_item": "controller-3"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:04.385270Z",
                            "start": "2026-03-17T19:47:04.213390Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-00000000000c",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/zuul-info",
                                    "state": "absent"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 493,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/zuul-info",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:04.775596Z",
                            "start": "2026-03-17T19:47:04.394540Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-000000000011",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "0871d05ec36f716fbd9ca247d58a370125693fc3",
                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "0871d05ec36f716fbd9ca247d58a370125693fc3",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/zuul-info",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/.ansible/tmp/ansible-tmp-1773776824.823092-84-272243379277873/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "977ebec382f363eee555648284eaf709",
                            "mode": "0644",
                            "owner": "root",
                            "size": 24783,
                            "src": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/.ansible/tmp/ansible-tmp-1773776824.823092-84-272243379277873/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:05.660015Z",
                            "start": "2026-03-17T19:47:04.784142Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-000000000012",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-03-17T19:47:12.648283Z",
                    "start": "2026-03-17T19:47:05.668018Z"
                },
                "id": "0242ac17-0011-e1bb-d42f-000000000013",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "stat",
                            "changed": false,
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:05.923455Z",
                            "start": "2026-03-17T19:47:05.676409Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-00000000001a",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:05.975554Z",
                            "start": "2026-03-17T19:47:05.932028Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-00000000001b",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.363512",
                            "end": "2026-03-17 19:47:06.754050",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa -b 3072",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-e1bb-d42f-0000000000a6-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-17 19:47:06.390538",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa.pub\nThe key fingerprint is:\nSHA256:AG/xioxoSsomcrhS09vR8v3QSnjx0tNXz2HyZAyDH9w zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|    . .          |\n|     o o    o .  |\n|      + .  . = E |\n| . o o o    . =  |\n|.o..o ..S .  o *.|\n|*.o . o .. = .*.+|\n|*+.. o +..= = ..+|\n|=o  . . .o.+ . . |\n|o         ...    |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:AG/xioxoSsomcrhS09vR8v3QSnjx0tNXz2HyZAyDH9w zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|    . .          |",
                                "|     o o    o .  |",
                                "|      + .  . = E |",
                                "| . o o o    . =  |",
                                "|.o..o ..S .  o *.|",
                                "|*.o . o .. = .*.+|",
                                "|*+.. o +..= = ..+|",
                                "|=o  . . .o.+ . . |",
                                "|o         ...    |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0011-e1bb-d42f-0000000000a6-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:06.794880Z",
                            "start": "2026-03-17T19:47:05.999524Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000a6",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:06.844250Z",
                            "start": "2026-03-17T19:47:06.800432Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000a7",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:06.940533Z",
                            "start": "2026-03-17T19:47:06.876387Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000d4",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "present",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-2": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "present",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-3": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "present",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:07.499871Z",
                            "start": "2026-03-17T19:47:06.948487Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000d5",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:07.765070Z",
                            "start": "2026-03-17T19:47:07.506244Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000d6",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "006f495f4979348b3666d8c2928811c0c575f4e7",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "78dbca21a77c4746a7a74c42711667c6_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "006f495f4979348b3666d8c2928811c0c575f4e7",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 384,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776827.8143299-204-134598652668788/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "4f3443451de73d8aacfc8e45bcd7fd56",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776827.8143299-204-134598652668788/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "006f495f4979348b3666d8c2928811c0c575f4e7",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "78dbca21a77c4746a7a74c42711667c6_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "006f495f4979348b3666d8c2928811c0c575f4e7",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 384,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776827.8200746-205-162287751843755/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "4f3443451de73d8aacfc8e45bcd7fd56",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776827.8200746-205-162287751843755/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "006f495f4979348b3666d8c2928811c0c575f4e7",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "78dbca21a77c4746a7a74c42711667c6_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "006f495f4979348b3666d8c2928811c0c575f4e7",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 384,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776827.83037-206-75977784259208/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "4f3443451de73d8aacfc8e45bcd7fd56",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776827.83037-206-75977784259208/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:08.345316Z",
                            "start": "2026-03-17T19:47:07.768775Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000d7",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "5195d0089e4404d2ab60c16c6fbf263282b9c6aa",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "78dbca21a77c4746a7a74c42711667c6_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "5195d0089e4404d2ab60c16c6fbf263282b9c6aa",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa.pub",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776828.3957167-234-11432159521159/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "cabac91304e75e4bf292d5059f63b198",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776828.3957167-234-11432159521159/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "5195d0089e4404d2ab60c16c6fbf263282b9c6aa",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "78dbca21a77c4746a7a74c42711667c6_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "5195d0089e4404d2ab60c16c6fbf263282b9c6aa",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa.pub",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776828.4134505-235-44301667311049/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "cabac91304e75e4bf292d5059f63b198",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776828.4134505-235-44301667311049/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "5195d0089e4404d2ab60c16c6fbf263282b9c6aa",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "78dbca21a77c4746a7a74c42711667c6_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "5195d0089e4404d2ab60c16c6fbf263282b9c6aa",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa.pub",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776828.4177525-237-258724039794315/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "cabac91304e75e4bf292d5059f63b198",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776828.4177525-237-258724039794315/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:08.916543Z",
                            "start": "2026-03-17T19:47:08.352465Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000d8",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:08.957287Z",
                            "start": "2026-03-17T19:47:08.921806Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000a8",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/etc/zuul/id_rsa"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-0000000000ad",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:09.295336Z",
                            "start": "2026-03-17T19:47:08.966751Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000af",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa"
                            ],
                            "delta": "0:00:00.014667",
                            "end": "2026-03-17 19:47:09.573331",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-e1bb-d42f-0000000000b5-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-17 19:47:09.558664",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/78dbca21a77c4746a7a74c42711667c6_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0011-e1bb-d42f-0000000000b5-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:09.611614Z",
                            "start": "2026-03-17T19:47:09.349964Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000b5",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        },
                        "controller-2": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        },
                        "controller-3": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:09.927476Z",
                            "start": "2026-03-17T19:47:09.615361Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000b6",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:09.984498Z",
                            "start": "2026-03-17T19:47:09.935559Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-0000000000b7",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        },
                        "controller-2": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        },
                        "controller-3": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:10.310905Z",
                            "start": "2026-03-17T19:47:10.002135Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-00000000001f",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:11.339620Z",
                            "start": "2026-03-17T19:47:10.315218Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-000000000020",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:12.006861Z",
                            "start": "2026-03-17T19:47:11.355255Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-000000000024",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-e1bb-d42f-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:12.648283Z",
                            "start": "2026-03-17T19:47:12.015809Z"
                        },
                        "id": "0242ac17-0011-e1bb-d42f-000000000026",
                        "name": "Ensure Zuul Output directories exist"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 8,
            "failures": 0,
            "ignored": 0,
            "ok": 15,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 5,
            "failures": 0,
            "ignored": 0,
            "ok": 11,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 5,
            "failures": 0,
            "ignored": 0,
            "ok": 11,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "localhost": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 6,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "1",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-jobs/playbooks/molecule/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-03-17T19:47:16.414101Z",
                    "start": "2026-03-17T19:47:13.353610Z"
                },
                "id": "0242ac17-0011-b8e1-2daa-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.unarchive",
                            "changed": true,
                            "dest": "/usr/local/bin",
                            "extract_results": {
                                "cmd": [
                                    "/usr/bin/tar",
                                    "--extract",
                                    "-C",
                                    "/usr/local/bin",
                                    "-z",
                                    "--show-transformed-names",
                                    "--strip-components=1",
                                    "-f",
                                    "/home/zuul/.ansible/tmp/ansible-tmp-1773776833.4085393-5-60625121217641/uv-x86_64-unknown-linux-gnuk1fkhaic.tar.gz"
                                ],
                                "err": "",
                                "out": "",
                                "rc": 0
                            },
                            "gid": 0,
                            "group": "root",
                            "handler": "TgzArchive",
                            "invocation": {
                                "module_args": {
                                    "attributes": null,
                                    "copy": true,
                                    "creates": "/usr/local/bin/uv",
                                    "decrypt": true,
                                    "dest": "/usr/local/bin",
                                    "exclude": [],
                                    "extra_opts": [
                                        "--strip-components=1"
                                    ],
                                    "group": null,
                                    "include": [],
                                    "io_buffer_size": 65536,
                                    "keep_newer": false,
                                    "list_files": false,
                                    "mode": null,
                                    "owner": null,
                                    "remote_src": true,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-x86_64-unknown-linux-gnu.tar.gz",
                                    "unsafe_writes": false,
                                    "validate_certs": true
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "size": 4096,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776833.4085393-5-60625121217641/uv-x86_64-unknown-linux-gnuk1fkhaic.tar.gz",
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-2": {
                            "action": "ansible.builtin.unarchive",
                            "changed": true,
                            "dest": "/usr/local/bin",
                            "extract_results": {
                                "cmd": [
                                    "/usr/bin/tar",
                                    "--extract",
                                    "-C",
                                    "/usr/local/bin",
                                    "-z",
                                    "--show-transformed-names",
                                    "--strip-components=1",
                                    "-f",
                                    "/home/zuul/.ansible/tmp/ansible-tmp-1773776833.4205558-6-12308524215114/uv-x86_64-unknown-linux-gnuao51dqig.tar.gz"
                                ],
                                "err": "",
                                "out": "",
                                "rc": 0
                            },
                            "gid": 0,
                            "group": "root",
                            "handler": "TgzArchive",
                            "invocation": {
                                "module_args": {
                                    "attributes": null,
                                    "copy": true,
                                    "creates": "/usr/local/bin/uv",
                                    "decrypt": true,
                                    "dest": "/usr/local/bin",
                                    "exclude": [],
                                    "extra_opts": [
                                        "--strip-components=1"
                                    ],
                                    "group": null,
                                    "include": [],
                                    "io_buffer_size": 65536,
                                    "keep_newer": false,
                                    "list_files": false,
                                    "mode": null,
                                    "owner": null,
                                    "remote_src": true,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-x86_64-unknown-linux-gnu.tar.gz",
                                    "unsafe_writes": false,
                                    "validate_certs": true
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "size": 4096,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776833.4205558-6-12308524215114/uv-x86_64-unknown-linux-gnuao51dqig.tar.gz",
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-3": {
                            "action": "ansible.builtin.unarchive",
                            "changed": true,
                            "dest": "/usr/local/bin",
                            "extract_results": {
                                "cmd": [
                                    "/usr/bin/tar",
                                    "--extract",
                                    "-C",
                                    "/usr/local/bin",
                                    "-z",
                                    "--show-transformed-names",
                                    "--strip-components=1",
                                    "-f",
                                    "/home/zuul/.ansible/tmp/ansible-tmp-1773776833.4240227-8-159522597733096/uv-x86_64-unknown-linux-gnu69dajddg.tar.gz"
                                ],
                                "err": "",
                                "out": "",
                                "rc": 0
                            },
                            "gid": 0,
                            "group": "root",
                            "handler": "TgzArchive",
                            "invocation": {
                                "module_args": {
                                    "attributes": null,
                                    "copy": true,
                                    "creates": "/usr/local/bin/uv",
                                    "decrypt": true,
                                    "dest": "/usr/local/bin",
                                    "exclude": [],
                                    "extra_opts": [
                                        "--strip-components=1"
                                    ],
                                    "group": null,
                                    "include": [],
                                    "io_buffer_size": 65536,
                                    "keep_newer": false,
                                    "list_files": false,
                                    "mode": null,
                                    "owner": null,
                                    "remote_src": true,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-x86_64-unknown-linux-gnu.tar.gz",
                                    "unsafe_writes": false,
                                    "validate_certs": true
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "size": 4096,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776833.4240227-8-159522597733096/uv-x86_64-unknown-linux-gnu69dajddg.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b8e1-2daa-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:15.821745Z",
                            "start": "2026-03-17T19:47:13.366117Z"
                        },
                        "id": "0242ac17-0011-b8e1-2daa-000000000009",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.014327",
                            "end": "2026-03-17 19:47:16.217486",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-b8e1-2daa-00000000000a-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-17 19:47:16.203159",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-b8e1-2daa-00000000000a-1-controller1"
                        },
                        "controller-2": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.013420",
                            "end": "2026-03-17 19:47:16.196059",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-b8e1-2daa-00000000000a-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-17 19:47:16.182639",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-b8e1-2daa-00000000000a-1-controller2"
                        },
                        "controller-3": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.014854",
                            "end": "2026-03-17 19:47:16.192870",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-b8e1-2daa-00000000000a-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-17 19:47:16.178016",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-b8e1-2daa-00000000000a-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b8e1-2daa-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:16.414101Z",
                            "start": "2026-03-17T19:47:15.878564Z"
                        },
                        "id": "0242ac17-0011-b8e1-2daa-00000000000a",
                        "name": "Print version"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "run",
    "playbook": "github.com/vexxhost/zuul-jobs/playbooks/molecule/run.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-03-17T20:06:02.202650Z",
                    "start": "2026-03-17T19:47:17.126655Z"
                },
                "id": "0242ac17-0011-9feb-0487-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "checksum": "0871d05ec36f716fbd9ca247d58a370125693fc3",
                            "dest": "src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "0871d05ec36f716fbd9ca247d58a370125693fc3",
                                    "content": null,
                                    "dest": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776837.1931887-5-189920244105070/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "977ebec382f363eee555648284eaf709",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 24783,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773776837.1931887-5-189920244105070/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:18.099259Z",
                            "start": "2026-03-17T19:47:17.137724Z"
                        },
                        "id": "0242ac17-0011-9feb-0487-000000000006",
                        "name": "Copy inventory file for Zuul"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.replace",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "after": null,
                                    "attributes": null,
                                    "backup": false,
                                    "before": null,
                                    "encoding": "utf-8",
                                    "group": null,
                                    "mode": null,
                                    "owner": null,
                                    "path": "src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml",
                                    "regexp": "(^\\s*ansible_host:\\s*).*$",
                                    "replace": "\\1\"{{ nodepool.private_ipv4 }}\"",
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "msg": "3 replacements made",
                            "rc": 0
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T19:47:18.451409Z",
                            "start": "2026-03-17T19:47:18.104731Z"
                        },
                        "id": "0242ac17-0011-9feb-0487-000000000007",
                        "name": "Switch \"ansible_host\" to private IP"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "molecule",
                                "test",
                                "--destroy",
                                "never",
                                "-s",
                                "cluster-upgrade"
                            ],
                            "delta": "0:18:43.258532",
                            "end": "2026-03-17 20:06:02.081020",
                            "failed": true,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run molecule test --destroy never -s cluster-upgrade",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-9feb-0487-000000000008-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 2,
                            "start": "2026-03-17 19:47:18.822488",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.13.5 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\nDownloading cryptography (4.3MiB)\nDownloading ansible-core (2.3MiB)\nDownloading pygments (1.2MiB)\n Downloading cryptography\n Downloading pygments\n Downloading ansible-core\nInstalled 36 packages in 53ms\nINFO     Collection 'vexxhost.kubernetes' detected.\nINFO     Scenarios will be used from 'extensions/molecule'\nCRITICAL 'extensions/molecule/default/molecule.yml' glob failed.  Exiting.\nINFO     default scenario not found, disabling shared state.\nINFO     [cluster-upgrade > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy\nINFO     [cluster-upgrade > prerun] Performing prerun with role_name_check=0...\nINFO     [cluster-upgrade > dependency] Executing\nWARNING  [cluster-upgrade > dependency] Missing roles requirements file: requirements.yml\nWARNING  [cluster-upgrade > dependency] Missing collections requirements file: collections.yml\nWARNING  [cluster-upgrade > dependency] Executed: 2 missing (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > cleanup] Executing\nWARNING  [cluster-upgrade > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > destroy] Executing\nWARNING  [cluster-upgrade > destroy] Skipping, '--destroy=never' requested.\nINFO     [cluster-upgrade > destroy] Executed: Successful\nINFO     [cluster-upgrade > syntax] Executing\n\nplaybook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml\nINFO     [cluster-upgrade > syntax] Executed: Successful\nINFO     [cluster-upgrade > create] Executing\nWARNING  [cluster-upgrade > create] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > prepare] Executing\n\nPLAY [Prepare] *****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  19:47:38 +0000 (0:00:00.033)       0:00:00.033 *********\n[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [Install Debian packages] *************************************************\nTuesday 17 March 2026  19:47:40 +0000 (0:00:01.305)       0:00:01.338 *********\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  19:47:47 +0000 (0:00:07.087)       0:00:08.426 *********\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nTuesday 17 March 2026  19:47:50 +0000 (0:00:02.828)       0:00:11.255 *********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nTuesday 17 March 2026  19:47:50 +0000 (0:00:00.440)       0:00:11.696 *********\nok: [controller-2] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-3] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-1] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-3] => (item=/etc/kubernetes/manifests/haproxy.yaml)\n\nTASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****\nTuesday 17 March 2026  19:47:52 +0000 (0:00:01.449)       0:00:13.145 *********\n[ERROR]: Task failed: Module failed: Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3\n\n30     - Restart \"kubelet\" service\n31\n32 - name: Switch API server to run on port 6443\n     ^ column 3\n\nfailed: [controller-2] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\nfailed: [controller-3] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\nfailed: [controller-1] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\n[ERROR]: Task failed: Module failed: Path /etc/kubernetes/controller-manager.conf does not exist !\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3\n\n30     - Restart \"kubelet\" service\n31\n32 - name: Switch API server to run on port 6443\n     ^ column 3\n\nfailed: [controller-2] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\nfailed: [controller-3] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\nfailed: [controller-1] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\n[ERROR]: Task failed: Module failed: Path /etc/kubernetes/scheduler.conf does not exist !\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3\n\n30     - Restart \"kubelet\" service\n31\n32 - name: Switch API server to run on port 6443\n     ^ column 3\n\nfailed: [controller-3] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\nfailed: [controller-2] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\nfailed: [controller-1] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\n...ignoring\n...ignoring\n...ignoring\n\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nTuesday 17 March 2026  19:47:52 +0000 (0:00:00.946)       0:00:14.092 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nTuesday 17 March 2026  19:47:53 +0000 (0:00:00.400)       0:00:14.493 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nTuesday 17 March 2026  19:47:53 +0000 (0:00:00.344)       0:00:14.838 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nTuesday 17 March 2026  19:47:53 +0000 (0:00:00.059)       0:00:14.898 *********\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nTuesday 17 March 2026  19:47:53 +0000 (0:00:00.059)       0:00:14.957 *********\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nTuesday 17 March 2026  19:47:54 +0000 (0:00:00.960)       0:00:15.917 *********\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nTuesday 17 March 2026  19:47:55 +0000 (0:00:00.343)       0:00:16.261 *********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nTuesday 17 March 2026  19:47:55 +0000 (0:00:00.005)       0:00:16.266 *********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nTuesday 17 March 2026  19:47:55 +0000 (0:00:00.003)       0:00:16.269 *********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  19:47:55 +0000 (0:00:00.059)       0:00:16.329 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:47:56 +0000 (0:00:00.871)       0:00:17.200 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 17 March 2026  19:47:56 +0000 (0:00:00.450)       0:00:17.651 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nTuesday 17 March 2026  19:47:56 +0000 (0:00:00.085)       0:00:17.737 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:47:56 +0000 (0:00:00.358)       0:00:18.095 *********\nok: [controller-2] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"\n}\nok: [controller-1] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:47:57 +0000 (0:00:00.110)       0:00:18.205 *********\n[WARNING]: Module remote_tmp /root/.ansible/tmp did not exist and was created with a mode of 0700, this may cause issues when running as another user. To avoid this, create the remote_tmp dir with the correct permissions manually\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:47:58 +0000 (0:00:01.141)       0:00:19.347 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:47:58 +0000 (0:00:00.103)       0:00:19.450 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 17 March 2026  19:47:58 +0000 (0:00:00.362)       0:00:19.813 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:47:59 +0000 (0:00:01.128)       0:00:20.941 *********\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"\n}\nok: [controller-1] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:47:59 +0000 (0:00:00.101)       0:00:21.042 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:48:00 +0000 (0:00:00.979)       0:00:22.022 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nTuesday 17 March 2026  19:48:04 +0000 (0:00:03.224)       0:00:25.247 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nTuesday 17 March 2026  19:48:04 +0000 (0:00:00.068)       0:00:25.315 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nTuesday 17 March 2026  19:48:04 +0000 (0:00:00.059)       0:00:25.374 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nTuesday 17 March 2026  19:48:04 +0000 (0:00:00.059)       0:00:25.434 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nTuesday 17 March 2026  19:48:11 +0000 (0:00:06.971)       0:00:32.405 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nTuesday 17 March 2026  19:48:12 +0000 (0:00:00.759)       0:00:33.164 *********\nchanged: [controller-1] => (item={'path': '/etc/containerd'})\nchanged: [controller-2] => (item={'path': '/etc/containerd'})\nchanged: [controller-3] => (item={'path': '/etc/containerd'})\nchanged: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nTuesday 17 March 2026  19:48:13 +0000 (0:00:01.460)       0:00:34.625 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:48:14 +0000 (0:00:00.844)       0:00:35.469 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:48:14 +0000 (0:00:00.007)       0:00:35.476 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:48:14 +0000 (0:00:00.004)       0:00:35.481 *********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nTuesday 17 March 2026  19:48:14 +0000 (0:00:00.005)       0:00:35.486 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nTuesday 17 March 2026  19:48:15 +0000 (0:00:01.234)       0:00:36.721 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nTuesday 17 March 2026  19:48:17 +0000 (0:00:01.789)       0:00:38.510 *********\nchanged: [controller-3]\nchanged: [controller-2]\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nTuesday 17 March 2026  19:48:19 +0000 (0:00:01.743)       0:00:40.254 *********\n[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000159561's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes_upgrade_check/tasks/main.yml:16:3\n\n14\n15 ---\n16 - name: Retrieve the \"kubeadm-config\" ConfigMap\n     ^ column 3\n\nfatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000159561's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\"}\n...ignoring\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***\nTuesday 17 March 2026  19:48:19 +0000 (0:00:00.651)       0:00:40.906 *********\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nTuesday 17 March 2026  19:48:19 +0000 (0:00:00.038)       0:00:40.944 *********\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nTuesday 17 March 2026  19:48:19 +0000 (0:00:00.044)       0:00:40.989 *********\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nTuesday 17 March 2026  19:48:19 +0000 (0:00:00.044)       0:00:41.034 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nTuesday 17 March 2026  19:48:19 +0000 (0:00:00.063)       0:00:41.097 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:48:20 +0000 (0:00:00.074)       0:00:41.172 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:48:20 +0000 (0:00:00.333)       0:00:41.505 *********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:48:20 +0000 (0:00:00.081)       0:00:41.587 *********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:48:22 +0000 (0:00:01.747)       0:00:43.334 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:48:22 +0000 (0:00:00.085)       0:00:43.420 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:48:22 +0000 (0:00:00.346)       0:00:43.766 *********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:48:22 +0000 (0:00:00.072)       0:00:43.839 *********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:48:24 +0000 (0:00:01.730)       0:00:45.569 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nTuesday 17 March 2026  19:48:24 +0000 (0:00:00.102)       0:00:45.672 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nTuesday 17 March 2026  19:48:24 +0000 (0:00:00.061)       0:00:45.734 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nTuesday 17 March 2026  19:48:24 +0000 (0:00:00.063)       0:00:45.798 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nTuesday 17 March 2026  19:48:24 +0000 (0:00:00.074)       0:00:45.872 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nTuesday 17 March 2026  19:48:25 +0000 (0:00:01.059)       0:00:46.932 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nTuesday 17 March 2026  19:48:26 +0000 (0:00:00.760)       0:00:47.693 *********\nok: [controller-1] => (item={'path': '/etc/containerd'})\nok: [controller-2] => (item={'path': '/etc/containerd'})\nok: [controller-3] => (item={'path': '/etc/containerd'})\nok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nTuesday 17 March 2026  19:48:27 +0000 (0:00:01.428)       0:00:49.121 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:48:28 +0000 (0:00:00.794)       0:00:49.916 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:48:28 +0000 (0:00:00.004)       0:00:49.921 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:48:28 +0000 (0:00:00.004)       0:00:49.925 *********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nTuesday 17 March 2026  19:48:28 +0000 (0:00:00.004)       0:00:49.929 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:48:29 +0000 (0:00:00.565)       0:00:50.495 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:48:29 +0000 (0:00:00.347)       0:00:50.842 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:48:29 +0000 (0:00:00.099)       0:00:50.942 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:48:30 +0000 (0:00:00.821)       0:00:51.763 *********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:48:32 +0000 (0:00:01.780)       0:00:53.544 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:48:32 +0000 (0:00:00.118)       0:00:53.662 *********\nchanged: [controller-3]\nchanged: [controller-2]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:48:33 +0000 (0:00:00.888)       0:00:54.551 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nTuesday 17 March 2026  19:48:35 +0000 (0:00:01.719)       0:00:56.271 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nTuesday 17 March 2026  19:48:35 +0000 (0:00:00.788)       0:00:57.059 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:48:36 +0000 (0:00:00.371)       0:00:57.430 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:48:36 +0000 (0:00:00.348)       0:00:57.779 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:48:36 +0000 (0:00:00.102)       0:00:57.881 *********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:48:38 +0000 (0:00:01.270)       0:00:59.152 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nTuesday 17 March 2026  19:48:42 +0000 (0:00:04.035)       0:01:03.188 *********\nok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\nok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\nok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\n\nTASK [vexxhost.containers.cni_plugins : Install additional packages] ***********\nTuesday 17 March 2026  19:48:42 +0000 (0:00:00.088)       0:01:03.276 *********\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nTuesday 17 March 2026  19:48:43 +0000 (0:00:01.004)       0:01:04.280 *********\nchanged: [controller-3]\nchanged: [controller-2]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nTuesday 17 March 2026  19:48:43 +0000 (0:00:00.509)       0:01:04.790 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nTuesday 17 March 2026  19:48:44 +0000 (0:00:00.755)       0:01:05.546 *********\nchanged: [controller-1] => (item=br_netfilter)\nchanged: [controller-3] => (item=br_netfilter)\nchanged: [controller-2] => (item=br_netfilter)\nok: [controller-3] => (item=ip_tables)\nok: [controller-1] => (item=ip_tables)\nok: [controller-2] => (item=ip_tables)\nchanged: [controller-1] => (item=ip6_tables)\nchanged: [controller-3] => (item=ip6_tables)\nchanged: [controller-2] => (item=ip6_tables)\nchanged: [controller-1] => (item=nf_conntrack)\nchanged: [controller-3] => (item=nf_conntrack)\nchanged: [controller-2] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:48:46 +0000 (0:00:01.681)       0:01:07.227 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:48:46 +0000 (0:00:00.363)       0:01:07.591 *********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:48:46 +0000 (0:00:00.084)       0:01:07.675 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:48:48 +0000 (0:00:01.467)       0:01:09.143 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nTuesday 17 March 2026  19:48:48 +0000 (0:00:00.084)       0:01:09.227 *********\nok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\nok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\nok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\n\nTASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************\nTuesday 17 March 2026  19:48:48 +0000 (0:00:00.092)       0:01:09.320 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nTuesday 17 March 2026  19:48:48 +0000 (0:00:00.060)       0:01:09.380 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nTuesday 17 March 2026  19:48:51 +0000 (0:00:03.585)       0:01:12.966 *********\nchanged: [controller-1] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-1] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\n\nTASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***\nTuesday 17 March 2026  19:48:54 +0000 (0:00:02.280)       0:01:15.247 *********\nchanged: [controller-1] => (item=/etc/systemd/system/kubelet.service.d)\nchanged: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)\nchanged: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller-1] => (item=/etc/kubernetes)\nok: [controller-2] => (item=/etc/kubernetes)\nok: [controller-3] => (item=/etc/kubernetes)\nok: [controller-2] => (item=/etc/kubernetes/manifests)\nok: [controller-1] => (item=/etc/kubernetes/manifests)\nok: [controller-3] => (item=/etc/kubernetes/manifests)\n\nTASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********\nTuesday 17 March 2026  19:48:55 +0000 (0:00:00.900)       0:01:16.148 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nTuesday 17 March 2026  19:48:55 +0000 (0:00:00.726)       0:01:16.874 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nTuesday 17 March 2026  19:48:56 +0000 (0:00:00.761)       0:01:17.636 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nTuesday 17 March 2026  19:48:56 +0000 (0:00:00.437)       0:01:18.073 *********\n[ERROR]: Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\n\nTask failed.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:78:7\n\n76       register: kubelet_swapon\n77\n78     - name: Disable swap\n         ^ column 7\n\n<<< caused by >>>\n\nConditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11\n\n81       ignore_errors: \"{{ ansible_check_mode }}\"\n82       when:\n83         - kubelet_swapon.stdout\n             ^ column 11\n\nBroken conditionals can be temporarily allowed with the `ALLOW_BROKEN_CONDITIONALS` configuration option.\n\nfatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\nfatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\nfatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\n...ignoring\n...ignoring\n...ignoring\n\nTASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********\nTuesday 17 March 2026  19:48:57 +0000 (0:00:00.081)       0:01:18.155 *********\nok: [controller-1] => (item=swap)\nok: [controller-3] => (item=swap)\nok: [controller-2] => (item=swap)\nok: [controller-1] => (item=none)\nok: [controller-3] => (item=none)\nok: [controller-2] => (item=none)\n\nTASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***\nTuesday 17 March 2026  19:48:57 +0000 (0:00:00.811)       0:01:18.967 *********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nTuesday 17 March 2026  19:48:58 +0000 (0:00:00.736)       0:01:19.704 *********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nTuesday 17 March 2026  19:48:59 +0000 (0:00:00.861)       0:01:20.566 *********\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nTuesday 17 March 2026  19:48:59 +0000 (0:00:00.005)       0:01:20.572 *********\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nTuesday 17 March 2026  19:48:59 +0000 (0:00:00.004)       0:01:20.576 *********\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nTuesday 17 March 2026  19:48:59 +0000 (0:00:00.004)       0:01:20.581 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nTuesday 17 March 2026  19:49:01 +0000 (0:00:01.922)       0:01:22.504 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nTuesday 17 March 2026  19:49:02 +0000 (0:00:00.851)       0:01:23.355 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nTuesday 17 March 2026  19:49:03 +0000 (0:00:00.878)       0:01:24.234 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nTuesday 17 March 2026  19:49:04 +0000 (0:00:00.932)       0:01:25.166 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nTuesday 17 March 2026  19:49:04 +0000 (0:00:00.429)       0:01:25.596 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nTuesday 17 March 2026  19:49:04 +0000 (0:00:00.514)       0:01:26.111 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller-1, controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************\nTuesday 17 March 2026  19:49:05 +0000 (0:00:00.132)       0:01:26.243 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller-1, controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***\nTuesday 17 March 2026  19:49:05 +0000 (0:00:00.121)       0:01:26.365 *********\nok: [controller-1] => (item=controller-1)\nok: [controller-2 -> controller-1(199.19.213.29)] => (item=controller-1)\nok: [controller-3 -> controller-1(199.19.213.29)] => (item=controller-1)\nok: [controller-1 -> controller-2(199.19.213.201)] => (item=controller-2)\nok: [controller-2] => (item=controller-2)\nok: [controller-3 -> controller-2(199.19.213.201)] => (item=controller-2)\nok: [controller-1 -> controller-3(199.19.213.175)] => (item=controller-3)\nok: [controller-2 -> controller-3(199.19.213.175)] => (item=controller-3)\nok: [controller-3] => (item=controller-3)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nTuesday 17 March 2026  19:49:06 +0000 (0:00:00.883)       0:01:27.248 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nTuesday 17 March 2026  19:49:06 +0000 (0:00:00.076)       0:01:27.325 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nTuesday 17 March 2026  19:49:06 +0000 (0:00:00.080)       0:01:27.406 *********\nok: [controller-1] => {\n    \"msg\": \"controller-1\"\n}\nok: [controller-2] => {\n    \"msg\": \"controller-1\"\n}\nok: [controller-3] => {\n    \"msg\": \"controller-1\"\n}\n\nTASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***\nTuesday 17 March 2026  19:49:06 +0000 (0:00:00.073)       0:01:27.479 *********\nskipping: [controller-2]\nskipping: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.693)       0:01:28.173 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.062)       0:01:28.236 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.063)       0:01:28.300 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.056)       0:01:28.356 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.066)       0:01:28.422 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.065)       0:01:28.487 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.065)       0:01:28.553 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nTuesday 17 March 2026  19:49:07 +0000 (0:00:00.067)       0:01:28.620 *********\nchanged: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nTuesday 17 March 2026  19:49:37 +0000 (0:00:29.993)       0:01:58.614 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nTuesday 17 March 2026  19:49:37 +0000 (0:00:00.347)       0:01:58.961 *********\nskipping: [controller-1]\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/join-cluster.yml for controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Generate control-plane certificates for joining cluster] ***\nTuesday 17 March 2026  19:49:37 +0000 (0:00:00.105)       0:01:59.067 *********\nok: [controller-2 -> controller-1(199.19.213.29)]\n\nTASK [vexxhost.kubernetes.kubernetes : Retrieve SHA256 certificate hash] *******\nTuesday 17 March 2026  19:49:38 +0000 (0:00:00.476)       0:01:59.543 *********\nok: [controller-2 -> controller-1(199.19.213.29)]\n\nTASK [vexxhost.kubernetes.kubernetes : Generate token for joining cluster] *****\nTuesday 17 March 2026  19:49:39 +0000 (0:00:00.592)       0:02:00.135 *********\nchanged: [controller-2 -> controller-1(199.19.213.29)]\n\nTASK [vexxhost.kubernetes.kubernetes : Upload kubeadm configuration] ***********\nTuesday 17 March 2026  19:49:39 +0000 (0:00:00.423)       0:02:00.559 *********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nTuesday 17 March 2026  19:49:40 +0000 (0:00:00.800)       0:02:01.359 *********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***\nTuesday 17 March 2026  19:51:53 +0000 (0:02:13.486)       0:04:14.846 *********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***\nTuesday 17 March 2026  19:51:54 +0000 (0:00:00.543)       0:04:15.390 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******\nTuesday 17 March 2026  19:51:54 +0000 (0:00:00.368)       0:04:15.759 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************\nTuesday 17 March 2026  19:51:55 +0000 (0:00:00.403)       0:04:16.162 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***\nTuesday 17 March 2026  19:51:55 +0000 (0:00:00.066)       0:04:16.229 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************\nTuesday 17 March 2026  19:51:55 +0000 (0:00:00.069)       0:04:16.299 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***\nTuesday 17 March 2026  19:51:55 +0000 (0:00:00.080)       0:04:16.379 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***\nTuesday 17 March 2026  19:52:20 +0000 (0:00:24.967)       0:04:41.347 *********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************\nTuesday 17 March 2026  19:52:21 +0000 (0:00:01.563)       0:04:42.910 *********\nskipping: [controller-1] => (item=DaemonSet)\nskipping: [controller-1] => (item=ConfigMap)\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************\nTuesday 17 March 2026  19:52:21 +0000 (0:00:00.051)       0:04:42.962 *********\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***\nTuesday 17 March 2026  19:52:21 +0000 (0:00:00.049)       0:04:43.012 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***\nTuesday 17 March 2026  19:52:21 +0000 (0:00:00.080)       0:04:43.093 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************\nTuesday 17 March 2026  19:52:22 +0000 (0:00:00.088)       0:04:43.181 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***\nTuesday 17 March 2026  19:52:22 +0000 (0:00:00.067)       0:04:43.249 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***\nTuesday 17 March 2026  19:52:23 +0000 (0:00:01.353)       0:04:44.602 *********\nchanged: [controller-1]\n\nPLAY [Install control-plane components] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  19:52:24 +0000 (0:00:01.053)       0:04:45.656 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:52:26 +0000 (0:00:01.860)       0:04:47.516 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 17 March 2026  19:52:26 +0000 (0:00:00.356)       0:04:47.872 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nTuesday 17 March 2026  19:52:27 +0000 (0:00:01.113)       0:04:48.986 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:52:28 +0000 (0:00:00.334)       0:04:49.321 *********\nok: [controller-1] => {\n    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:52:28 +0000 (0:00:00.073)       0:04:49.394 *********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:52:29 +0000 (0:00:00.755)       0:04:50.150 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************\nTuesday 17 March 2026  19:52:30 +0000 (0:00:01.858)       0:04:52.009 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************\nTuesday 17 March 2026  19:52:31 +0000 (0:00:00.416)       0:04:52.425 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************\nTuesday 17 March 2026  19:52:31 +0000 (0:00:00.330)       0:04:52.755 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***\nTuesday 17 March 2026  19:52:32 +0000 (0:00:00.391)       0:04:53.146 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***\nTuesday 17 March 2026  19:52:32 +0000 (0:00:00.339)       0:04:53.486 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [Install plugin] **********************************************************\nTuesday 17 March 2026  19:52:32 +0000 (0:00:00.351)       0:04:53.837 *********\nincluded: vexxhost.containers.download_artifact for controller-1, controller-2, controller-3\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:52:32 +0000 (0:00:00.086)       0:04:53.924 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:52:32 +0000 (0:00:00.060)       0:04:53.984 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:52:33 +0000 (0:00:00.903)       0:04:54.888 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nTuesday 17 March 2026  19:52:35 +0000 (0:00:02.186)       0:04:57.075 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-2, controller-3\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nTuesday 17 March 2026  19:52:36 +0000 (0:00:00.116)       0:04:57.191 *********\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************\nTuesday 17 March 2026  19:52:36 +0000 (0:00:00.784)       0:04:57.975 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************\nTuesday 17 March 2026  19:52:37 +0000 (0:00:00.962)       0:04:58.937 *********\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nTuesday 17 March 2026  19:52:40 +0000 (0:00:02.390)       0:05:01.328 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-2, controller-3\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nTuesday 17 March 2026  19:52:40 +0000 (0:00:00.067)       0:05:01.396 *********\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************\nTuesday 17 March 2026  19:52:40 +0000 (0:00:00.701)       0:05:02.098 *********\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************\nTuesday 17 March 2026  19:53:44 +0000 (0:01:04.032)       0:06:06.131 *********\nchanged: [controller-1]\n\nPLAY [Wait for all nodes to become Ready] **************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  19:53:45 +0000 (0:00:00.894)       0:06:07.025 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [Wait for node to be Ready] ***********************************************\nTuesday 17 March 2026  19:53:47 +0000 (0:00:01.194)       0:06:08.220 *********\nok: [controller-2 -> controller-1(199.19.213.29)]\nok: [controller-1]\nok: [controller-3 -> controller-1(199.19.213.29)]\n\nPLAY RECAP *********************************************************************\ncontroller-1               : ok=120  changed=54   unreachable=0    failed=0    skipped=34   rescued=0    ignored=3\ncontroller-2               : ok=115  changed=49   unreachable=0    failed=0    skipped=31   rescued=0    ignored=2\ncontroller-3               : ok=112  changed=48   unreachable=0    failed=0    skipped=31   rescued=0    ignored=2\n\n\nTASKS RECAP ********************************************************************\nTuesday 17 March 2026  19:53:47 +0000 (0:00:00.848)       0:06:09.069 *********\n===============================================================================\nvexxhost.kubernetes.kubernetes : Join cluster ------------------------- 133.49s\nvexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 64.03s\nvexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 29.99s\nvexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems -- 24.97s\nInstall Debian packages ------------------------------------------------- 7.09s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 6.97s\nvexxhost.containers.download_artifact : Extract archive ----------------- 4.04s\nvexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 3.71s\nvexxhost.kubernetes.kubelet : Install additional packages --------------- 3.59s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.22s\nGathering Facts --------------------------------------------------------- 2.83s\nvexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.39s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.28s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.19s\nGathering Facts --------------------------------------------------------- 1.86s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.86s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.78s\nvexxhost.containers.download_artifact : Download item ------------------- 1.75s\nvexxhost.containers.containerd : Enable and start service --------------- 1.74s\nvexxhost.containers.download_artifact : Download item ------------------- 1.73s\nINFO     [cluster-upgrade > prepare] Executed: Successful\nINFO     [cluster-upgrade > converge] Executing\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  19:53:49 +0000 (0:00:00.016)       0:00:00.016 *********\n[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nTuesday 17 March 2026  19:53:51 +0000 (0:00:02.200)       0:00:02.216 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nTuesday 17 March 2026  19:53:52 +0000 (0:00:00.445)       0:00:02.662 *********\nok: [controller-1] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-2] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-3] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-3] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)\n\nTASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****\nTuesday 17 March 2026  19:53:53 +0000 (0:00:01.455)       0:00:04.117 *********\nok: [controller-2] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)\nok: [controller-3] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)\nok: [controller-1] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)\nok: [controller-2] => (item=/etc/kubernetes/controller-manager.conf)\nok: [controller-3] => (item=/etc/kubernetes/controller-manager.conf)\nok: [controller-1] => (item=/etc/kubernetes/controller-manager.conf)\nok: [controller-3] => (item=/etc/kubernetes/scheduler.conf)\nok: [controller-2] => (item=/etc/kubernetes/scheduler.conf)\nok: [controller-1] => (item=/etc/kubernetes/scheduler.conf)\n\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nTuesday 17 March 2026  19:53:54 +0000 (0:00:00.944)       0:00:05.062 *********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nTuesday 17 March 2026  19:53:54 +0000 (0:00:00.425)       0:00:05.488 *********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nTuesday 17 March 2026  19:53:55 +0000 (0:00:00.307)       0:00:05.795 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nTuesday 17 March 2026  19:53:55 +0000 (0:00:00.050)       0:00:05.845 *********\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nTuesday 17 March 2026  19:53:55 +0000 (0:00:00.052)       0:00:05.898 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nTuesday 17 March 2026  19:53:56 +0000 (0:00:00.798)       0:00:06.696 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nTuesday 17 March 2026  19:53:56 +0000 (0:00:00.315)       0:00:07.012 *********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nTuesday 17 March 2026  19:53:56 +0000 (0:00:00.003)       0:00:07.015 *********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nTuesday 17 March 2026  19:53:56 +0000 (0:00:00.002)       0:00:07.018 *********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  19:53:56 +0000 (0:00:00.062)       0:00:07.081 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:53:57 +0000 (0:00:01.009)       0:00:08.090 *********\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 17 March 2026  19:53:57 +0000 (0:00:00.373)       0:00:08.464 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nTuesday 17 March 2026  19:53:57 +0000 (0:00:00.094)       0:00:08.559 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:53:58 +0000 (0:00:00.349)       0:00:08.908 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:53:58 +0000 (0:00:00.104)       0:00:09.012 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:53:58 +0000 (0:00:00.590)       0:00:09.603 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:53:59 +0000 (0:00:00.087)       0:00:09.691 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 17 March 2026  19:53:59 +0000 (0:00:00.349)       0:00:10.041 *********\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:54:00 +0000 (0:00:01.185)       0:00:11.226 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:54:00 +0000 (0:00:00.113)       0:00:11.340 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:54:01 +0000 (0:00:00.531)       0:00:11.871 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nTuesday 17 March 2026  19:54:03 +0000 (0:00:02.428)       0:00:14.300 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nTuesday 17 March 2026  19:54:03 +0000 (0:00:00.058)       0:00:14.359 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nTuesday 17 March 2026  19:54:03 +0000 (0:00:00.057)       0:00:14.416 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nTuesday 17 March 2026  19:54:03 +0000 (0:00:00.057)       0:00:14.473 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nTuesday 17 March 2026  19:54:04 +0000 (0:00:01.005)       0:00:15.479 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nTuesday 17 March 2026  19:54:05 +0000 (0:00:00.684)       0:00:16.164 *********\nok: [controller-1] => (item={'path': '/etc/containerd'})\nok: [controller-3] => (item={'path': '/etc/containerd'})\nok: [controller-2] => (item={'path': '/etc/containerd'})\nok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nTuesday 17 March 2026  19:54:06 +0000 (0:00:01.486)       0:00:17.650 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:54:07 +0000 (0:00:00.813)       0:00:18.464 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:54:07 +0000 (0:00:00.007)       0:00:18.472 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:54:07 +0000 (0:00:00.004)       0:00:18.476 *********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nTuesday 17 March 2026  19:54:07 +0000 (0:00:00.005)       0:00:18.482 *********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nTuesday 17 March 2026  19:54:08 +0000 (0:00:00.726)       0:00:19.209 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***\nTuesday 17 March 2026  19:54:09 +0000 (0:00:00.938)       0:00:20.147 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nTuesday 17 March 2026  19:54:09 +0000 (0:00:00.052)       0:00:20.200 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nTuesday 17 March 2026  19:54:09 +0000 (0:00:00.049)       0:00:20.250 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nTuesday 17 March 2026  19:54:09 +0000 (0:00:00.054)       0:00:20.304 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nTuesday 17 March 2026  19:54:09 +0000 (0:00:00.070)       0:00:20.374 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:54:09 +0000 (0:00:00.087)       0:00:20.462 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:54:10 +0000 (0:00:00.367)       0:00:20.829 *********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:54:10 +0000 (0:00:00.071)       0:00:20.900 *********\nchanged: [controller-3]\nchanged: [controller-2]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:54:11 +0000 (0:00:01.669)       0:00:22.569 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:54:11 +0000 (0:00:00.081)       0:00:22.651 *********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:54:12 +0000 (0:00:00.336)       0:00:22.988 *********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:54:12 +0000 (0:00:00.072)       0:00:23.061 *********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:54:14 +0000 (0:00:02.105)       0:00:25.166 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nTuesday 17 March 2026  19:54:14 +0000 (0:00:00.134)       0:00:25.301 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nTuesday 17 March 2026  19:54:14 +0000 (0:00:00.073)       0:00:25.374 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nTuesday 17 March 2026  19:54:14 +0000 (0:00:00.070)       0:00:25.444 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nTuesday 17 March 2026  19:54:14 +0000 (0:00:00.069)       0:00:25.513 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nTuesday 17 March 2026  19:54:15 +0000 (0:00:00.984)       0:00:26.498 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nTuesday 17 March 2026  19:54:16 +0000 (0:00:00.713)       0:00:27.211 *********\nok: [controller-1] => (item={'path': '/etc/containerd'})\nok: [controller-2] => (item={'path': '/etc/containerd'})\nok: [controller-3] => (item={'path': '/etc/containerd'})\nok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nTuesday 17 March 2026  19:54:17 +0000 (0:00:01.427)       0:00:28.639 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:54:18 +0000 (0:00:00.784)       0:00:29.423 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:54:18 +0000 (0:00:00.006)       0:00:29.430 *********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 17 March 2026  19:54:18 +0000 (0:00:00.004)       0:00:29.435 *********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nTuesday 17 March 2026  19:54:18 +0000 (0:00:00.004)       0:00:29.440 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:54:19 +0000 (0:00:00.521)       0:00:29.961 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:54:19 +0000 (0:00:00.346)       0:00:30.307 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:54:19 +0000 (0:00:00.101)       0:00:30.409 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:54:20 +0000 (0:00:00.471)       0:00:30.881 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:54:21 +0000 (0:00:01.440)       0:00:32.321 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:54:21 +0000 (0:00:00.114)       0:00:32.435 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:54:22 +0000 (0:00:00.496)       0:00:32.932 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nTuesday 17 March 2026  19:54:23 +0000 (0:00:01.451)       0:00:34.383 *********\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nTuesday 17 March 2026  19:54:24 +0000 (0:00:00.727)       0:00:35.111 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:54:24 +0000 (0:00:00.373)       0:00:35.485 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:54:25 +0000 (0:00:00.343)       0:00:35.828 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:54:25 +0000 (0:00:00.100)       0:00:35.928 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:54:25 +0000 (0:00:00.508)       0:00:36.437 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nTuesday 17 March 2026  19:54:28 +0000 (0:00:02.294)       0:00:38.731 *********\nok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\nok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\nok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\n\nTASK [vexxhost.containers.cni_plugins : Install additional packages] ***********\nTuesday 17 March 2026  19:54:28 +0000 (0:00:00.078)       0:00:38.810 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nTuesday 17 March 2026  19:54:29 +0000 (0:00:00.902)       0:00:39.712 *********\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nTuesday 17 March 2026  19:54:29 +0000 (0:00:00.463)       0:00:40.176 *********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nTuesday 17 March 2026  19:54:30 +0000 (0:00:00.697)       0:00:40.873 *********\nok: [controller-1] => (item=br_netfilter)\nok: [controller-2] => (item=br_netfilter)\nok: [controller-3] => (item=br_netfilter)\nok: [controller-2] => (item=ip_tables)\nok: [controller-1] => (item=ip_tables)\nok: [controller-3] => (item=ip_tables)\nok: [controller-2] => (item=ip6_tables)\nok: [controller-3] => (item=ip6_tables)\nok: [controller-1] => (item=ip6_tables)\nok: [controller-2] => (item=nf_conntrack)\nok: [controller-3] => (item=nf_conntrack)\nok: [controller-1] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  19:54:31 +0000 (0:00:01.264)       0:00:42.138 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  19:54:31 +0000 (0:00:00.352)       0:00:42.491 *********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  19:54:31 +0000 (0:00:00.067)       0:00:42.558 *********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  19:54:33 +0000 (0:00:01.659)       0:00:44.218 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nTuesday 17 March 2026  19:54:33 +0000 (0:00:00.085)       0:00:44.303 *********\nok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\nok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\nok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\n\nTASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************\nTuesday 17 March 2026  19:54:33 +0000 (0:00:00.092)       0:00:44.396 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nTuesday 17 March 2026  19:54:33 +0000 (0:00:00.074)       0:00:44.470 *********\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nTuesday 17 March 2026  19:54:34 +0000 (0:00:00.991)       0:00:45.461 *********\nok: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nok: [controller-1] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nok: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nok: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nok: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nok: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nok: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nok: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nok: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nok: [controller-1] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nok: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nok: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nok: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nok: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nok: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nok: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nok: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nok: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nok: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nok: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nok: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\n\nTASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***\nTuesday 17 March 2026  19:54:37 +0000 (0:00:02.307)       0:00:47.769 *********\nok: [controller-1] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller-1] => (item=/etc/kubernetes)\nok: [controller-2] => (item=/etc/kubernetes)\nok: [controller-3] => (item=/etc/kubernetes)\nok: [controller-1] => (item=/etc/kubernetes/manifests)\nok: [controller-2] => (item=/etc/kubernetes/manifests)\nok: [controller-3] => (item=/etc/kubernetes/manifests)\n\nTASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********\nTuesday 17 March 2026  19:54:38 +0000 (0:00:00.888)       0:00:48.657 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nTuesday 17 March 2026  19:54:38 +0000 (0:00:00.682)       0:00:49.339 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nTuesday 17 March 2026  19:54:39 +0000 (0:00:00.727)       0:00:50.067 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nTuesday 17 March 2026  19:54:39 +0000 (0:00:00.439)       0:00:50.506 *********\n[ERROR]: Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\n\nTask failed.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:78:7\n\n76       register: kubelet_swapon\n77\n78     - name: Disable swap\n         ^ column 7\n\n<<< caused by >>>\n\nConditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11\n\n81       ignore_errors: \"{{ ansible_check_mode }}\"\n82       when:\n83         - kubelet_swapon.stdout\n             ^ column 11\n\nBroken conditionals can be temporarily allowed with the `ALLOW_BROKEN_CONDITIONALS` configuration option.\n\nfatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\nfatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\nfatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\n...ignoring\n...ignoring\n...ignoring\n\nTASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********\nTuesday 17 March 2026  19:54:39 +0000 (0:00:00.070)       0:00:50.577 *********\nok: [controller-1] => (item=swap)\nok: [controller-3] => (item=swap)\nok: [controller-2] => (item=swap)\nok: [controller-1] => (item=none)\nok: [controller-2] => (item=none)\nok: [controller-3] => (item=none)\n\nTASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***\nTuesday 17 March 2026  19:54:40 +0000 (0:00:00.777)       0:00:51.354 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nTuesday 17 March 2026  19:54:41 +0000 (0:00:00.692)       0:00:52.047 *********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nTuesday 17 March 2026  19:54:41 +0000 (0:00:00.523)       0:00:52.570 *********\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nTuesday 17 March 2026  19:54:41 +0000 (0:00:00.006)       0:00:52.577 *********\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nTuesday 17 March 2026  19:54:41 +0000 (0:00:00.005)       0:00:52.582 *********\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nTuesday 17 March 2026  19:54:41 +0000 (0:00:00.005)       0:00:52.588 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nTuesday 17 March 2026  19:54:42 +0000 (0:00:00.519)       0:00:53.107 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nTuesday 17 March 2026  19:54:43 +0000 (0:00:00.898)       0:00:54.005 *********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nTuesday 17 March 2026  19:54:44 +0000 (0:00:00.914)       0:00:54.920 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nTuesday 17 March 2026  19:54:44 +0000 (0:00:00.438)       0:00:55.358 *********\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nTuesday 17 March 2026  19:54:45 +0000 (0:00:00.545)       0:00:55.904 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller-1, controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************\nTuesday 17 March 2026  19:54:45 +0000 (0:00:00.144)       0:00:56.048 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller-1, controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***\nTuesday 17 March 2026  19:54:45 +0000 (0:00:00.141)       0:00:56.189 *********\nok: [controller-1] => (item=controller-1)\nok: [controller-2 -> controller-1(199.19.213.29)] => (item=controller-1)\nok: [controller-3 -> controller-1(199.19.213.29)] => (item=controller-1)\nok: [controller-1 -> controller-2(199.19.213.201)] => (item=controller-2)\nok: [controller-2] => (item=controller-2)\nok: [controller-3 -> controller-2(199.19.213.201)] => (item=controller-2)\nok: [controller-1 -> controller-3(199.19.213.175)] => (item=controller-3)\nok: [controller-3] => (item=controller-3)\nok: [controller-2 -> controller-3(199.19.213.175)] => (item=controller-3)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nTuesday 17 March 2026  19:54:46 +0000 (0:00:00.971)       0:00:57.161 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nTuesday 17 March 2026  19:54:46 +0000 (0:00:00.082)       0:00:57.243 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nTuesday 17 March 2026  19:54:46 +0000 (0:00:00.065)       0:00:57.308 *********\nok: [controller-1] => {\n    \"msg\": \"controller-1\"\n}\nok: [controller-2] => {\n    \"msg\": \"controller-1\"\n}\nok: [controller-3] => {\n    \"msg\": \"controller-1\"\n}\n\nTASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***\nTuesday 17 March 2026  19:54:46 +0000 (0:00:00.069)       0:00:57.377 *********\nskipping: [controller-2]\nskipping: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nTuesday 17 March 2026  19:54:47 +0000 (0:00:00.827)       0:00:58.205 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nTuesday 17 March 2026  19:54:47 +0000 (0:00:00.070)       0:00:58.275 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nTuesday 17 March 2026  19:54:47 +0000 (0:00:00.067)       0:00:58.343 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nTuesday 17 March 2026  19:54:47 +0000 (0:00:00.069)       0:00:58.412 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nTuesday 17 March 2026  19:54:47 +0000 (0:00:00.069)       0:00:58.481 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nTuesday 17 March 2026  19:54:47 +0000 (0:00:00.069)       0:00:58.551 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nTuesday 17 March 2026  19:54:47 +0000 (0:00:00.085)       0:00:58.637 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nTuesday 17 March 2026  19:54:48 +0000 (0:00:00.079)       0:00:58.716 *********\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nTuesday 17 March 2026  19:54:48 +0000 (0:00:00.365)       0:00:59.082 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nTuesday 17 March 2026  19:54:48 +0000 (0:00:00.358)       0:00:59.440 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***\nTuesday 17 March 2026  19:54:48 +0000 (0:00:00.071)       0:00:59.512 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***\nTuesday 17 March 2026  19:54:49 +0000 (0:00:00.353)       0:00:59.865 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******\nTuesday 17 March 2026  19:54:49 +0000 (0:00:00.348)       0:01:00.214 *********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************\nTuesday 17 March 2026  19:54:49 +0000 (0:00:00.338)       0:01:00.552 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***\nTuesday 17 March 2026  19:54:49 +0000 (0:00:00.086)       0:01:00.639 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************\nTuesday 17 March 2026  19:54:50 +0000 (0:00:00.079)       0:01:00.719 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***\nTuesday 17 March 2026  19:54:50 +0000 (0:00:00.087)       0:01:00.806 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***\nTuesday 17 March 2026  19:54:51 +0000 (0:00:01.014)       0:01:01.820 *********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************\nTuesday 17 March 2026  19:54:51 +0000 (0:00:00.833)       0:01:02.653 *********\nskipping: [controller-1] => (item=DaemonSet)\nskipping: [controller-1] => (item=ConfigMap)\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************\nTuesday 17 March 2026  19:54:52 +0000 (0:00:00.039)       0:01:02.693 *********\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***\nTuesday 17 March 2026  19:58:53 +0000 (0:04:01.863)       0:05:04.557 *********\n[ERROR]: Task failed: Module failed: non-zero return code\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml:95:7\n\n93         kubeadm upgrade apply --v=5 --yes v{{ kubernetes_version }}\n94\n95     - name: Check if the Kubernetes API services is up to date\n         ^ column 7\n\nfatal: [controller-3]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.009178\", \"end\": \"2026-03-17 19:58:54.436014\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-17 19:58:54.426836\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}\nfatal: [controller-2]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.007246\", \"end\": \"2026-03-17 19:58:54.431813\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-17 19:58:54.424567\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}\nok: [controller-1]\n...ignoring\n...ignoring\n\nTASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***\nTuesday 17 March 2026  19:58:54 +0000 (0:00:00.569)       0:05:05.127 *********\nskipping: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************\nTuesday 17 March 2026  20:05:05 +0000 (0:06:10.887)       0:11:16.015 *********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***\nTuesday 17 March 2026  20:05:05 +0000 (0:00:00.076)       0:11:16.092 *********\nchanged: [controller-1]\n[ERROR]: Task failed: Module failed: non-zero return code\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/main.yml:19:3\n\n17   ansible.builtin.include_tasks: nodes.yml\n18\n19 - name: Upgrade & restart Kubelet node for upgrade (if needed)\n     ^ column 3\n\nfatal: [controller-2]: FAILED! => {\"changed\": true, \"cmd\": [\"kubeadm\", \"upgrade\", \"node\"], \"delta\": \"0:00:03.817825\", \"end\": \"2026-03-17 20:05:16.817637\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-17 20:05:12.999812\", \"stderr\": \"W0317 20:05:13.113402    8400 initconfiguration.go:125] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme \\\"unix\\\" to the \\\"criSocket\\\" with value \\\"/run/containerd/containerd.sock\\\". Please update your configuration!\\nW0317 20:05:13.624486    8400 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\\nerror: error execution phase addon/coredns: failed to determine whether all the control plane instances have been upgraded: failed to list kube-apiserver Pod from cluster: Get \\\"https://199.19.213.29:6443/api/v1/namespaces/kube-system/pods?labelSelector=component%3Dkube-apiserver\\\": dial tcp 199.19.213.29:6443: connect: connection refused - error from a previous attempt: unexpected EOF\\nTo see the stack trace of this error execute with --v=5 or higher\", \"stderr_lines\": [\"W0317 20:05:13.113402    8400 initconfiguration.go:125] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme \\\"unix\\\" to the \\\"criSocket\\\" with value \\\"/run/containerd/containerd.sock\\\". Please update your configuration!\", \"W0317 20:05:13.624486    8400 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\", \"error: error execution phase addon/coredns: failed to determine whether all the control plane instances have been upgraded: failed to list kube-apiserver Pod from cluster: Get \\\"https://199.19.213.29:6443/api/v1/namespaces/kube-system/pods?labelSelector=component%3Dkube-apiserver\\\": dial tcp 199.19.213.29:6443: connect: connection refused - error from a previous attempt: unexpected EOF\", \"To see the stack trace of this error execute with --v=5 or higher\"], \"stdout\": \"[upgrade] Reading configuration from the \\\"kubeadm-config\\\" ConfigMap in namespace \\\"kube-system\\\"...\\n[upgrade] Use 'kubeadm init phase upload-config kubeadm --config your-config-file' to re-upload it.\\n[upgrade/preflight] Running pre-flight checks\\n[upgrade/preflight] Pulling images required for setting up a Kubernetes cluster\\n[upgrade/preflight] This might take a minute or two, depending on the speed of your internet connection\\n[upgrade/preflight] You can also perform this action beforehand using 'kubeadm config images pull'\\n[upgrade/control-plane] Upgrading your Static Pod-hosted control plane instance to version \\\"v1.34.0\\\"...\\n[upgrade/staticpods] Writing new Static Pod manifests to \\\"/etc/kubernetes/tmp/kubeadm-upgraded-manifests3542619676\\\"\\n[upgrade/staticpods] Preparing for \\\"etcd\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of etcd are equal, skipping upgrade\\n[upgrade/etcd] Waiting for etcd to become available\\n[upgrade/staticpods] Preparing for \\\"kube-apiserver\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of kube-apiserver are equal, skipping upgrade\\n[upgrade/staticpods] Preparing for \\\"kube-controller-manager\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of kube-controller-manager are equal, skipping upgrade\\n[upgrade/staticpods] Preparing for \\\"kube-scheduler\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of kube-scheduler are equal, skipping upgrade\\n[upgrade/control-plane] The control plane instance for this node was successfully upgraded!\\n[upgrade/kubeconfig] The kubeconfig files for this node were successfully upgraded!\\n[upgrade] Backing up kubelet config file to /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367/config.yaml\\n[patches] Applied patch of type \\\"application/strategic-merge-patch+json\\\" to target \\\"kubeletconfiguration\\\"\\n[kubelet-start] Writing kubelet configuration to file \\\"/var/lib/kubelet/config.yaml\\\"\\n[upgrade/kubelet-config] The kubelet configuration for this node was successfully upgraded!\", \"stdout_lines\": [\"[upgrade] Reading configuration from the \\\"kubeadm-config\\\" ConfigMap in namespace \\\"kube-system\\\"...\", \"[upgrade] Use 'kubeadm init phase upload-config kubeadm --config your-config-file' to re-upload it.\", \"[upgrade/preflight] Running pre-flight checks\", \"[upgrade/preflight] Pulling images required for setting up a Kubernetes cluster\", \"[upgrade/preflight] This might take a minute or two, depending on the speed of your internet connection\", \"[upgrade/preflight] You can also perform this action beforehand using 'kubeadm config images pull'\", \"[upgrade/control-plane] Upgrading your Static Pod-hosted control plane instance to version \\\"v1.34.0\\\"...\", \"[upgrade/staticpods] Writing new Static Pod manifests to \\\"/etc/kubernetes/tmp/kubeadm-upgraded-manifests3542619676\\\"\", \"[upgrade/staticpods] Preparing for \\\"etcd\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of etcd are equal, skipping upgrade\", \"[upgrade/etcd] Waiting for etcd to become available\", \"[upgrade/staticpods] Preparing for \\\"kube-apiserver\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of kube-apiserver are equal, skipping upgrade\", \"[upgrade/staticpods] Preparing for \\\"kube-controller-manager\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of kube-controller-manager are equal, skipping upgrade\", \"[upgrade/staticpods] Preparing for \\\"kube-scheduler\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of kube-scheduler are equal, skipping upgrade\", \"[upgrade/control-plane] The control plane instance for this node was successfully upgraded!\", \"[upgrade/kubeconfig] The kubeconfig files for this node were successfully upgraded!\", \"[upgrade] Backing up kubelet config file to /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367/config.yaml\", \"[patches] Applied patch of type \\\"application/strategic-merge-patch+json\\\" to target \\\"kubeletconfiguration\\\"\", \"[kubelet-start] Writing kubelet configuration to file \\\"/var/lib/kubelet/config.yaml\\\"\", \"[upgrade/kubelet-config] The kubelet configuration for this node was successfully upgraded!\"]}\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***\nTuesday 17 March 2026  20:05:42 +0000 (0:00:37.393)       0:11:53.485 *********\nchanged: [controller-1]\n\nPLAY [Install control-plane components] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 17 March 2026  20:05:43 +0000 (0:00:01.067)       0:11:54.553 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 17 March 2026  20:05:45 +0000 (0:00:01.977)       0:11:56.530 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 17 March 2026  20:05:46 +0000 (0:00:00.332)       0:11:56.863 *********\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nTuesday 17 March 2026  20:05:47 +0000 (0:00:01.119)       0:11:57.983 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  20:05:47 +0000 (0:00:00.333)       0:11:58.316 *********\nok: [controller-1] => {\n    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  20:05:47 +0000 (0:00:00.061)       0:11:58.378 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  20:05:48 +0000 (0:00:00.445)       0:11:58.823 *********\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************\nTuesday 17 March 2026  20:05:49 +0000 (0:00:01.454)       0:12:00.278 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************\nTuesday 17 March 2026  20:05:50 +0000 (0:00:00.401)       0:12:00.680 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************\nTuesday 17 March 2026  20:05:50 +0000 (0:00:00.314)       0:12:00.994 *********\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***\nTuesday 17 March 2026  20:05:50 +0000 (0:00:00.373)       0:12:01.368 *********\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***\nTuesday 17 March 2026  20:05:51 +0000 (0:00:00.340)       0:12:01.708 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [Install plugin] **********************************************************\nTuesday 17 March 2026  20:05:51 +0000 (0:00:00.329)       0:12:02.037 *********\nincluded: vexxhost.containers.download_artifact for controller-1, controller-3\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 17 March 2026  20:05:51 +0000 (0:00:00.087)       0:12:02.125 *********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 17 March 2026  20:05:51 +0000 (0:00:00.061)       0:12:02.186 *********\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 17 March 2026  20:05:51 +0000 (0:00:00.435)       0:12:02.622 *********\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nTuesday 17 March 2026  20:05:53 +0000 (0:00:01.662)       0:12:04.285 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-3\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nTuesday 17 March 2026  20:05:53 +0000 (0:00:00.100)       0:12:04.385 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************\nTuesday 17 March 2026  20:05:54 +0000 (0:00:00.773)       0:12:05.159 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************\nTuesday 17 March 2026  20:05:55 +0000 (0:00:01.037)       0:12:06.196 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nTuesday 17 March 2026  20:05:58 +0000 (0:00:02.955)       0:12:09.152 *********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-3\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nTuesday 17 March 2026  20:05:58 +0000 (0:00:00.061)       0:12:09.214 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************\nTuesday 17 March 2026  20:05:59 +0000 (0:00:00.637)       0:12:09.851 *********\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************\nTuesday 17 March 2026  20:06:01 +0000 (0:00:01.835)       0:12:11.687 *********\nok: [controller-1]\n\nPLAY RECAP *********************************************************************\ncontroller-1               : ok=119  changed=7    unreachable=0    failed=0    skipped=28   rescued=0    ignored=1\ncontroller-2               : ok=86   changed=4    unreachable=0    failed=1    skipped=29   rescued=0    ignored=2\ncontroller-3               : ok=105  changed=5    unreachable=0    failed=0    skipped=29   rescued=0    ignored=2\n\n\nTASKS RECAP ********************************************************************\nTuesday 17 March 2026  20:06:01 +0000 (0:00:00.796)       0:12:12.483 *********\n===============================================================================\nvexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services - 370.89s\nvexxhost.kubernetes.kubernetes : Start an upgrade --------------------- 241.86s\nvexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed) -- 37.39s\nvexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.96s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.43s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.31s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.29s\nGathering Facts --------------------------------------------------------- 2.20s\nvexxhost.containers.download_artifact : Download item ------------------- 2.11s\nGathering Facts --------------------------------------------------------- 1.98s\nvexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------- 1.84s\nvexxhost.containers.download_artifact : Download item ------------------- 1.67s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.66s\nvexxhost.containers.download_artifact : Download item ------------------- 1.66s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.49s\nvexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.46s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.45s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.45s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.44s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.43s\nCRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml\nERROR    [cluster-upgrade > converge] \u001b[31mExecuted: Failed\u001b[0m\nERROR    Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml",
                            "stdout_lines": [
                                "Using CPython 3.13.5 interpreter at: /usr/bin/python3",
                                "Creating virtual environment at: .venv",
                                "Downloading cryptography (4.3MiB)",
                                "Downloading ansible-core (2.3MiB)",
                                "Downloading pygments (1.2MiB)",
                                " Downloading cryptography",
                                " Downloading pygments",
                                " Downloading ansible-core",
                                "Installed 36 packages in 53ms",
                                "INFO     Collection 'vexxhost.kubernetes' detected.",
                                "INFO     Scenarios will be used from 'extensions/molecule'",
                                "CRITICAL 'extensions/molecule/default/molecule.yml' glob failed.  Exiting.",
                                "INFO     default scenario not found, disabling shared state.",
                                "INFO     [cluster-upgrade > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy",
                                "INFO     [cluster-upgrade > prerun] Performing prerun with role_name_check=0...",
                                "INFO     [cluster-upgrade > dependency] Executing",
                                "WARNING  [cluster-upgrade > dependency] Missing roles requirements file: requirements.yml",
                                "WARNING  [cluster-upgrade > dependency] Missing collections requirements file: collections.yml",
                                "WARNING  [cluster-upgrade > dependency] Executed: 2 missing (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > cleanup] Executing",
                                "WARNING  [cluster-upgrade > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > destroy] Executing",
                                "WARNING  [cluster-upgrade > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [cluster-upgrade > destroy] Executed: Successful",
                                "INFO     [cluster-upgrade > syntax] Executing",
                                "",
                                "playbook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml",
                                "INFO     [cluster-upgrade > syntax] Executed: Successful",
                                "INFO     [cluster-upgrade > create] Executing",
                                "WARNING  [cluster-upgrade > create] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > prepare] Executing",
                                "",
                                "PLAY [Prepare] *****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  19:47:38 +0000 (0:00:00.033)       0:00:00.033 *********",
                                "[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install Debian packages] *************************************************",
                                "Tuesday 17 March 2026  19:47:40 +0000 (0:00:01.305)       0:00:01.338 *********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  19:47:47 +0000 (0:00:07.087)       0:00:08.426 *********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Tuesday 17 March 2026  19:47:50 +0000 (0:00:02.828)       0:00:11.255 *********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Tuesday 17 March 2026  19:47:50 +0000 (0:00:00.440)       0:00:11.696 *********",
                                "ok: [controller-2] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-3] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-1] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****",
                                "Tuesday 17 March 2026  19:47:52 +0000 (0:00:01.449)       0:00:13.145 *********",
                                "[ERROR]: Task failed: Module failed: Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3",
                                "",
                                "30     - Restart \"kubelet\" service",
                                "31",
                                "32 - name: Switch API server to run on port 6443",
                                "     ^ column 3",
                                "",
                                "failed: [controller-2] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "failed: [controller-3] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "failed: [controller-1] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "[ERROR]: Task failed: Module failed: Path /etc/kubernetes/controller-manager.conf does not exist !",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3",
                                "",
                                "30     - Restart \"kubelet\" service",
                                "31",
                                "32 - name: Switch API server to run on port 6443",
                                "     ^ column 3",
                                "",
                                "failed: [controller-2] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-3] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-1] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "[ERROR]: Task failed: Module failed: Path /etc/kubernetes/scheduler.conf does not exist !",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3",
                                "",
                                "30     - Restart \"kubelet\" service",
                                "31",
                                "32 - name: Switch API server to run on port 6443",
                                "     ^ column 3",
                                "",
                                "failed: [controller-3] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-2] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-1] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "...ignoring",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Tuesday 17 March 2026  19:47:52 +0000 (0:00:00.946)       0:00:14.092 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Tuesday 17 March 2026  19:47:53 +0000 (0:00:00.400)       0:00:14.493 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Tuesday 17 March 2026  19:47:53 +0000 (0:00:00.344)       0:00:14.838 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Tuesday 17 March 2026  19:47:53 +0000 (0:00:00.059)       0:00:14.898 *********",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Tuesday 17 March 2026  19:47:53 +0000 (0:00:00.059)       0:00:14.957 *********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Tuesday 17 March 2026  19:47:54 +0000 (0:00:00.960)       0:00:15.917 *********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Tuesday 17 March 2026  19:47:55 +0000 (0:00:00.343)       0:00:16.261 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Tuesday 17 March 2026  19:47:55 +0000 (0:00:00.005)       0:00:16.266 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Tuesday 17 March 2026  19:47:55 +0000 (0:00:00.003)       0:00:16.269 *********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  19:47:55 +0000 (0:00:00.059)       0:00:16.329 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:47:56 +0000 (0:00:00.871)       0:00:17.200 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 17 March 2026  19:47:56 +0000 (0:00:00.450)       0:00:17.651 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Tuesday 17 March 2026  19:47:56 +0000 (0:00:00.085)       0:00:17.737 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:47:56 +0000 (0:00:00.358)       0:00:18.095 *********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"",
                                "}",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:47:57 +0000 (0:00:00.110)       0:00:18.205 *********",
                                "[WARNING]: Module remote_tmp /root/.ansible/tmp did not exist and was created with a mode of 0700, this may cause issues when running as another user. To avoid this, create the remote_tmp dir with the correct permissions manually",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:47:58 +0000 (0:00:01.141)       0:00:19.347 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:47:58 +0000 (0:00:00.103)       0:00:19.450 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 17 March 2026  19:47:58 +0000 (0:00:00.362)       0:00:19.813 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:47:59 +0000 (0:00:01.128)       0:00:20.941 *********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:47:59 +0000 (0:00:00.101)       0:00:21.042 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:48:00 +0000 (0:00:00.979)       0:00:22.022 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Tuesday 17 March 2026  19:48:04 +0000 (0:00:03.224)       0:00:25.247 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Tuesday 17 March 2026  19:48:04 +0000 (0:00:00.068)       0:00:25.315 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Tuesday 17 March 2026  19:48:04 +0000 (0:00:00.059)       0:00:25.374 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Tuesday 17 March 2026  19:48:04 +0000 (0:00:00.059)       0:00:25.434 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Tuesday 17 March 2026  19:48:11 +0000 (0:00:06.971)       0:00:32.405 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Tuesday 17 March 2026  19:48:12 +0000 (0:00:00.759)       0:00:33.164 *********",
                                "changed: [controller-1] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-2] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-3] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Tuesday 17 March 2026  19:48:13 +0000 (0:00:01.460)       0:00:34.625 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:48:14 +0000 (0:00:00.844)       0:00:35.469 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:48:14 +0000 (0:00:00.007)       0:00:35.476 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:48:14 +0000 (0:00:00.004)       0:00:35.481 *********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Tuesday 17 March 2026  19:48:14 +0000 (0:00:00.005)       0:00:35.486 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Tuesday 17 March 2026  19:48:15 +0000 (0:00:01.234)       0:00:36.721 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Tuesday 17 March 2026  19:48:17 +0000 (0:00:01.789)       0:00:38.510 *********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Tuesday 17 March 2026  19:48:19 +0000 (0:00:01.743)       0:00:40.254 *********",
                                "[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000159561's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes_upgrade_check/tasks/main.yml:16:3",
                                "",
                                "14",
                                "15 ---",
                                "16 - name: Retrieve the \"kubeadm-config\" ConfigMap",
                                "     ^ column 3",
                                "",
                                "fatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000159561's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\"}",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***",
                                "Tuesday 17 March 2026  19:48:19 +0000 (0:00:00.651)       0:00:40.906 *********",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Tuesday 17 March 2026  19:48:19 +0000 (0:00:00.038)       0:00:40.944 *********",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Tuesday 17 March 2026  19:48:19 +0000 (0:00:00.044)       0:00:40.989 *********",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Tuesday 17 March 2026  19:48:19 +0000 (0:00:00.044)       0:00:41.034 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Tuesday 17 March 2026  19:48:19 +0000 (0:00:00.063)       0:00:41.097 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:48:20 +0000 (0:00:00.074)       0:00:41.172 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:48:20 +0000 (0:00:00.333)       0:00:41.505 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:48:20 +0000 (0:00:00.081)       0:00:41.587 *********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:48:22 +0000 (0:00:01.747)       0:00:43.334 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:48:22 +0000 (0:00:00.085)       0:00:43.420 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:48:22 +0000 (0:00:00.346)       0:00:43.766 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:48:22 +0000 (0:00:00.072)       0:00:43.839 *********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:48:24 +0000 (0:00:01.730)       0:00:45.569 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Tuesday 17 March 2026  19:48:24 +0000 (0:00:00.102)       0:00:45.672 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Tuesday 17 March 2026  19:48:24 +0000 (0:00:00.061)       0:00:45.734 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Tuesday 17 March 2026  19:48:24 +0000 (0:00:00.063)       0:00:45.798 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Tuesday 17 March 2026  19:48:24 +0000 (0:00:00.074)       0:00:45.872 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Tuesday 17 March 2026  19:48:25 +0000 (0:00:01.059)       0:00:46.932 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Tuesday 17 March 2026  19:48:26 +0000 (0:00:00.760)       0:00:47.693 *********",
                                "ok: [controller-1] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-2] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-3] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Tuesday 17 March 2026  19:48:27 +0000 (0:00:01.428)       0:00:49.121 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:48:28 +0000 (0:00:00.794)       0:00:49.916 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:48:28 +0000 (0:00:00.004)       0:00:49.921 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:48:28 +0000 (0:00:00.004)       0:00:49.925 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Tuesday 17 March 2026  19:48:28 +0000 (0:00:00.004)       0:00:49.929 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:48:29 +0000 (0:00:00.565)       0:00:50.495 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:48:29 +0000 (0:00:00.347)       0:00:50.842 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:48:29 +0000 (0:00:00.099)       0:00:50.942 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:48:30 +0000 (0:00:00.821)       0:00:51.763 *********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:48:32 +0000 (0:00:01.780)       0:00:53.544 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:48:32 +0000 (0:00:00.118)       0:00:53.662 *********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:48:33 +0000 (0:00:00.888)       0:00:54.551 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Tuesday 17 March 2026  19:48:35 +0000 (0:00:01.719)       0:00:56.271 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Tuesday 17 March 2026  19:48:35 +0000 (0:00:00.788)       0:00:57.059 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:48:36 +0000 (0:00:00.371)       0:00:57.430 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:48:36 +0000 (0:00:00.348)       0:00:57.779 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:48:36 +0000 (0:00:00.102)       0:00:57.881 *********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:48:38 +0000 (0:00:01.270)       0:00:59.152 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Tuesday 17 March 2026  19:48:42 +0000 (0:00:04.035)       0:01:03.188 *********",
                                "ok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "ok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "ok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Install additional packages] ***********",
                                "Tuesday 17 March 2026  19:48:42 +0000 (0:00:00.088)       0:01:03.276 *********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Tuesday 17 March 2026  19:48:43 +0000 (0:00:01.004)       0:01:04.280 *********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Tuesday 17 March 2026  19:48:43 +0000 (0:00:00.509)       0:01:04.790 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Tuesday 17 March 2026  19:48:44 +0000 (0:00:00.755)       0:01:05.546 *********",
                                "changed: [controller-1] => (item=br_netfilter)",
                                "changed: [controller-3] => (item=br_netfilter)",
                                "changed: [controller-2] => (item=br_netfilter)",
                                "ok: [controller-3] => (item=ip_tables)",
                                "ok: [controller-1] => (item=ip_tables)",
                                "ok: [controller-2] => (item=ip_tables)",
                                "changed: [controller-1] => (item=ip6_tables)",
                                "changed: [controller-3] => (item=ip6_tables)",
                                "changed: [controller-2] => (item=ip6_tables)",
                                "changed: [controller-1] => (item=nf_conntrack)",
                                "changed: [controller-3] => (item=nf_conntrack)",
                                "changed: [controller-2] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:48:46 +0000 (0:00:01.681)       0:01:07.227 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:48:46 +0000 (0:00:00.363)       0:01:07.591 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:48:46 +0000 (0:00:00.084)       0:01:07.675 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:48:48 +0000 (0:00:01.467)       0:01:09.143 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Tuesday 17 March 2026  19:48:48 +0000 (0:00:00.084)       0:01:09.227 *********",
                                "ok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "ok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "ok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************",
                                "Tuesday 17 March 2026  19:48:48 +0000 (0:00:00.092)       0:01:09.320 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Tuesday 17 March 2026  19:48:48 +0000 (0:00:00.060)       0:01:09.380 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Tuesday 17 March 2026  19:48:51 +0000 (0:00:03.585)       0:01:12.966 *********",
                                "changed: [controller-1] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-1] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***",
                                "Tuesday 17 March 2026  19:48:54 +0000 (0:00:02.280)       0:01:15.247 *********",
                                "changed: [controller-1] => (item=/etc/systemd/system/kubelet.service.d)",
                                "changed: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)",
                                "changed: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller-1] => (item=/etc/kubernetes)",
                                "ok: [controller-2] => (item=/etc/kubernetes)",
                                "ok: [controller-3] => (item=/etc/kubernetes)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********",
                                "Tuesday 17 March 2026  19:48:55 +0000 (0:00:00.900)       0:01:16.148 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Tuesday 17 March 2026  19:48:55 +0000 (0:00:00.726)       0:01:16.874 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Tuesday 17 March 2026  19:48:56 +0000 (0:00:00.761)       0:01:17.636 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Tuesday 17 March 2026  19:48:56 +0000 (0:00:00.437)       0:01:18.073 *********",
                                "[ERROR]: Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.",
                                "",
                                "Task failed.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:78:7",
                                "",
                                "76       register: kubelet_swapon",
                                "77",
                                "78     - name: Disable swap",
                                "         ^ column 7",
                                "",
                                "<<< caused by >>>",
                                "",
                                "Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11",
                                "",
                                "81       ignore_errors: \"{{ ansible_check_mode }}\"",
                                "82       when:",
                                "83         - kubelet_swapon.stdout",
                                "             ^ column 11",
                                "",
                                "Broken conditionals can be temporarily allowed with the `ALLOW_BROKEN_CONDITIONALS` configuration option.",
                                "",
                                "fatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "fatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "fatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "...ignoring",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********",
                                "Tuesday 17 March 2026  19:48:57 +0000 (0:00:00.081)       0:01:18.155 *********",
                                "ok: [controller-1] => (item=swap)",
                                "ok: [controller-3] => (item=swap)",
                                "ok: [controller-2] => (item=swap)",
                                "ok: [controller-1] => (item=none)",
                                "ok: [controller-3] => (item=none)",
                                "ok: [controller-2] => (item=none)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***",
                                "Tuesday 17 March 2026  19:48:57 +0000 (0:00:00.811)       0:01:18.967 *********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Tuesday 17 March 2026  19:48:58 +0000 (0:00:00.736)       0:01:19.704 *********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Tuesday 17 March 2026  19:48:59 +0000 (0:00:00.861)       0:01:20.566 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Tuesday 17 March 2026  19:48:59 +0000 (0:00:00.005)       0:01:20.572 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Tuesday 17 March 2026  19:48:59 +0000 (0:00:00.004)       0:01:20.576 *********",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Tuesday 17 March 2026  19:48:59 +0000 (0:00:00.004)       0:01:20.581 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Tuesday 17 March 2026  19:49:01 +0000 (0:00:01.922)       0:01:22.504 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Tuesday 17 March 2026  19:49:02 +0000 (0:00:00.851)       0:01:23.355 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Tuesday 17 March 2026  19:49:03 +0000 (0:00:00.878)       0:01:24.234 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Tuesday 17 March 2026  19:49:04 +0000 (0:00:00.932)       0:01:25.166 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Tuesday 17 March 2026  19:49:04 +0000 (0:00:00.429)       0:01:25.596 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Tuesday 17 March 2026  19:49:04 +0000 (0:00:00.514)       0:01:26.111 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************",
                                "Tuesday 17 March 2026  19:49:05 +0000 (0:00:00.132)       0:01:26.243 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***",
                                "Tuesday 17 March 2026  19:49:05 +0000 (0:00:00.121)       0:01:26.365 *********",
                                "ok: [controller-1] => (item=controller-1)",
                                "ok: [controller-2 -> controller-1(199.19.213.29)] => (item=controller-1)",
                                "ok: [controller-3 -> controller-1(199.19.213.29)] => (item=controller-1)",
                                "ok: [controller-1 -> controller-2(199.19.213.201)] => (item=controller-2)",
                                "ok: [controller-2] => (item=controller-2)",
                                "ok: [controller-3 -> controller-2(199.19.213.201)] => (item=controller-2)",
                                "ok: [controller-1 -> controller-3(199.19.213.175)] => (item=controller-3)",
                                "ok: [controller-2 -> controller-3(199.19.213.175)] => (item=controller-3)",
                                "ok: [controller-3] => (item=controller-3)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Tuesday 17 March 2026  19:49:06 +0000 (0:00:00.883)       0:01:27.248 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Tuesday 17 March 2026  19:49:06 +0000 (0:00:00.076)       0:01:27.325 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Tuesday 17 March 2026  19:49:06 +0000 (0:00:00.080)       0:01:27.406 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***",
                                "Tuesday 17 March 2026  19:49:06 +0000 (0:00:00.073)       0:01:27.479 *********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.693)       0:01:28.173 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.062)       0:01:28.236 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.063)       0:01:28.300 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.056)       0:01:28.356 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.066)       0:01:28.422 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.065)       0:01:28.487 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.065)       0:01:28.553 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Tuesday 17 March 2026  19:49:07 +0000 (0:00:00.067)       0:01:28.620 *********",
                                "changed: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Tuesday 17 March 2026  19:49:37 +0000 (0:00:29.993)       0:01:58.614 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Tuesday 17 March 2026  19:49:37 +0000 (0:00:00.347)       0:01:58.961 *********",
                                "skipping: [controller-1]",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/join-cluster.yml for controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Generate control-plane certificates for joining cluster] ***",
                                "Tuesday 17 March 2026  19:49:37 +0000 (0:00:00.105)       0:01:59.067 *********",
                                "ok: [controller-2 -> controller-1(199.19.213.29)]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Retrieve SHA256 certificate hash] *******",
                                "Tuesday 17 March 2026  19:49:38 +0000 (0:00:00.476)       0:01:59.543 *********",
                                "ok: [controller-2 -> controller-1(199.19.213.29)]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Generate token for joining cluster] *****",
                                "Tuesday 17 March 2026  19:49:39 +0000 (0:00:00.592)       0:02:00.135 *********",
                                "changed: [controller-2 -> controller-1(199.19.213.29)]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload kubeadm configuration] ***********",
                                "Tuesday 17 March 2026  19:49:39 +0000 (0:00:00.423)       0:02:00.559 *********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Tuesday 17 March 2026  19:49:40 +0000 (0:00:00.800)       0:02:01.359 *********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***",
                                "Tuesday 17 March 2026  19:51:53 +0000 (0:02:13.486)       0:04:14.846 *********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***",
                                "Tuesday 17 March 2026  19:51:54 +0000 (0:00:00.543)       0:04:15.390 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******",
                                "Tuesday 17 March 2026  19:51:54 +0000 (0:00:00.368)       0:04:15.759 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************",
                                "Tuesday 17 March 2026  19:51:55 +0000 (0:00:00.403)       0:04:16.162 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***",
                                "Tuesday 17 March 2026  19:51:55 +0000 (0:00:00.066)       0:04:16.229 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************",
                                "Tuesday 17 March 2026  19:51:55 +0000 (0:00:00.069)       0:04:16.299 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***",
                                "Tuesday 17 March 2026  19:51:55 +0000 (0:00:00.080)       0:04:16.379 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***",
                                "Tuesday 17 March 2026  19:52:20 +0000 (0:00:24.967)       0:04:41.347 *********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************",
                                "Tuesday 17 March 2026  19:52:21 +0000 (0:00:01.563)       0:04:42.910 *********",
                                "skipping: [controller-1] => (item=DaemonSet)",
                                "skipping: [controller-1] => (item=ConfigMap)",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************",
                                "Tuesday 17 March 2026  19:52:21 +0000 (0:00:00.051)       0:04:42.962 *********",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***",
                                "Tuesday 17 March 2026  19:52:21 +0000 (0:00:00.049)       0:04:43.012 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***",
                                "Tuesday 17 March 2026  19:52:21 +0000 (0:00:00.080)       0:04:43.093 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************",
                                "Tuesday 17 March 2026  19:52:22 +0000 (0:00:00.088)       0:04:43.181 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***",
                                "Tuesday 17 March 2026  19:52:22 +0000 (0:00:00.067)       0:04:43.249 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***",
                                "Tuesday 17 March 2026  19:52:23 +0000 (0:00:01.353)       0:04:44.602 *********",
                                "changed: [controller-1]",
                                "",
                                "PLAY [Install control-plane components] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  19:52:24 +0000 (0:00:01.053)       0:04:45.656 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:52:26 +0000 (0:00:01.860)       0:04:47.516 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 17 March 2026  19:52:26 +0000 (0:00:00.356)       0:04:47.872 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Tuesday 17 March 2026  19:52:27 +0000 (0:00:01.113)       0:04:48.986 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:52:28 +0000 (0:00:00.334)       0:04:49.321 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:52:28 +0000 (0:00:00.073)       0:04:49.394 *********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:52:29 +0000 (0:00:00.755)       0:04:50.150 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************",
                                "Tuesday 17 March 2026  19:52:30 +0000 (0:00:01.858)       0:04:52.009 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************",
                                "Tuesday 17 March 2026  19:52:31 +0000 (0:00:00.416)       0:04:52.425 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************",
                                "Tuesday 17 March 2026  19:52:31 +0000 (0:00:00.330)       0:04:52.755 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***",
                                "Tuesday 17 March 2026  19:52:32 +0000 (0:00:00.391)       0:04:53.146 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***",
                                "Tuesday 17 March 2026  19:52:32 +0000 (0:00:00.339)       0:04:53.486 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install plugin] **********************************************************",
                                "Tuesday 17 March 2026  19:52:32 +0000 (0:00:00.351)       0:04:53.837 *********",
                                "included: vexxhost.containers.download_artifact for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:52:32 +0000 (0:00:00.086)       0:04:53.924 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:52:32 +0000 (0:00:00.060)       0:04:53.984 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:52:33 +0000 (0:00:00.903)       0:04:54.888 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Tuesday 17 March 2026  19:52:35 +0000 (0:00:02.186)       0:04:57.075 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Tuesday 17 March 2026  19:52:36 +0000 (0:00:00.116)       0:04:57.191 *********",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************",
                                "Tuesday 17 March 2026  19:52:36 +0000 (0:00:00.784)       0:04:57.975 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************",
                                "Tuesday 17 March 2026  19:52:37 +0000 (0:00:00.962)       0:04:58.937 *********",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Tuesday 17 March 2026  19:52:40 +0000 (0:00:02.390)       0:05:01.328 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Tuesday 17 March 2026  19:52:40 +0000 (0:00:00.067)       0:05:01.396 *********",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************",
                                "Tuesday 17 March 2026  19:52:40 +0000 (0:00:00.701)       0:05:02.098 *********",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************",
                                "Tuesday 17 March 2026  19:53:44 +0000 (0:01:04.032)       0:06:06.131 *********",
                                "changed: [controller-1]",
                                "",
                                "PLAY [Wait for all nodes to become Ready] **************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  19:53:45 +0000 (0:00:00.894)       0:06:07.025 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Wait for node to be Ready] ***********************************************",
                                "Tuesday 17 March 2026  19:53:47 +0000 (0:00:01.194)       0:06:08.220 *********",
                                "ok: [controller-2 -> controller-1(199.19.213.29)]",
                                "ok: [controller-1]",
                                "ok: [controller-3 -> controller-1(199.19.213.29)]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller-1               : ok=120  changed=54   unreachable=0    failed=0    skipped=34   rescued=0    ignored=3",
                                "controller-2               : ok=115  changed=49   unreachable=0    failed=0    skipped=31   rescued=0    ignored=2",
                                "controller-3               : ok=112  changed=48   unreachable=0    failed=0    skipped=31   rescued=0    ignored=2",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Tuesday 17 March 2026  19:53:47 +0000 (0:00:00.848)       0:06:09.069 *********",
                                "===============================================================================",
                                "vexxhost.kubernetes.kubernetes : Join cluster ------------------------- 133.49s",
                                "vexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 64.03s",
                                "vexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 29.99s",
                                "vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems -- 24.97s",
                                "Install Debian packages ------------------------------------------------- 7.09s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 6.97s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 4.04s",
                                "vexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 3.71s",
                                "vexxhost.kubernetes.kubelet : Install additional packages --------------- 3.59s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.22s",
                                "Gathering Facts --------------------------------------------------------- 2.83s",
                                "vexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.39s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.28s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.19s",
                                "Gathering Facts --------------------------------------------------------- 1.86s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.86s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.78s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.75s",
                                "vexxhost.containers.containerd : Enable and start service --------------- 1.74s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.73s",
                                "INFO     [cluster-upgrade > prepare] Executed: Successful",
                                "INFO     [cluster-upgrade > converge] Executing",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  19:53:49 +0000 (0:00:00.016)       0:00:00.016 *********",
                                "[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Tuesday 17 March 2026  19:53:51 +0000 (0:00:02.200)       0:00:02.216 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Tuesday 17 March 2026  19:53:52 +0000 (0:00:00.445)       0:00:02.662 *********",
                                "ok: [controller-1] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-2] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-3] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****",
                                "Tuesday 17 March 2026  19:53:53 +0000 (0:00:01.455)       0:00:04.117 *********",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)",
                                "ok: [controller-2] => (item=/etc/kubernetes/controller-manager.conf)",
                                "ok: [controller-3] => (item=/etc/kubernetes/controller-manager.conf)",
                                "ok: [controller-1] => (item=/etc/kubernetes/controller-manager.conf)",
                                "ok: [controller-3] => (item=/etc/kubernetes/scheduler.conf)",
                                "ok: [controller-2] => (item=/etc/kubernetes/scheduler.conf)",
                                "ok: [controller-1] => (item=/etc/kubernetes/scheduler.conf)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Tuesday 17 March 2026  19:53:54 +0000 (0:00:00.944)       0:00:05.062 *********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Tuesday 17 March 2026  19:53:54 +0000 (0:00:00.425)       0:00:05.488 *********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Tuesday 17 March 2026  19:53:55 +0000 (0:00:00.307)       0:00:05.795 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Tuesday 17 March 2026  19:53:55 +0000 (0:00:00.050)       0:00:05.845 *********",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Tuesday 17 March 2026  19:53:55 +0000 (0:00:00.052)       0:00:05.898 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Tuesday 17 March 2026  19:53:56 +0000 (0:00:00.798)       0:00:06.696 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Tuesday 17 March 2026  19:53:56 +0000 (0:00:00.315)       0:00:07.012 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Tuesday 17 March 2026  19:53:56 +0000 (0:00:00.003)       0:00:07.015 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Tuesday 17 March 2026  19:53:56 +0000 (0:00:00.002)       0:00:07.018 *********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  19:53:56 +0000 (0:00:00.062)       0:00:07.081 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:53:57 +0000 (0:00:01.009)       0:00:08.090 *********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 17 March 2026  19:53:57 +0000 (0:00:00.373)       0:00:08.464 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Tuesday 17 March 2026  19:53:57 +0000 (0:00:00.094)       0:00:08.559 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:53:58 +0000 (0:00:00.349)       0:00:08.908 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:53:58 +0000 (0:00:00.104)       0:00:09.012 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:53:58 +0000 (0:00:00.590)       0:00:09.603 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:53:59 +0000 (0:00:00.087)       0:00:09.691 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 17 March 2026  19:53:59 +0000 (0:00:00.349)       0:00:10.041 *********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:54:00 +0000 (0:00:01.185)       0:00:11.226 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.0/containerd-2.2.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:54:00 +0000 (0:00:00.113)       0:00:11.340 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:54:01 +0000 (0:00:00.531)       0:00:11.871 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Tuesday 17 March 2026  19:54:03 +0000 (0:00:02.428)       0:00:14.300 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Tuesday 17 March 2026  19:54:03 +0000 (0:00:00.058)       0:00:14.359 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Tuesday 17 March 2026  19:54:03 +0000 (0:00:00.057)       0:00:14.416 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Tuesday 17 March 2026  19:54:03 +0000 (0:00:00.057)       0:00:14.473 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Tuesday 17 March 2026  19:54:04 +0000 (0:00:01.005)       0:00:15.479 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Tuesday 17 March 2026  19:54:05 +0000 (0:00:00.684)       0:00:16.164 *********",
                                "ok: [controller-1] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-3] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-2] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Tuesday 17 March 2026  19:54:06 +0000 (0:00:01.486)       0:00:17.650 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:54:07 +0000 (0:00:00.813)       0:00:18.464 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:54:07 +0000 (0:00:00.007)       0:00:18.472 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:54:07 +0000 (0:00:00.004)       0:00:18.476 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Tuesday 17 March 2026  19:54:07 +0000 (0:00:00.005)       0:00:18.482 *********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Tuesday 17 March 2026  19:54:08 +0000 (0:00:00.726)       0:00:19.209 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***",
                                "Tuesday 17 March 2026  19:54:09 +0000 (0:00:00.938)       0:00:20.147 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Tuesday 17 March 2026  19:54:09 +0000 (0:00:00.052)       0:00:20.200 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Tuesday 17 March 2026  19:54:09 +0000 (0:00:00.049)       0:00:20.250 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Tuesday 17 March 2026  19:54:09 +0000 (0:00:00.054)       0:00:20.304 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Tuesday 17 March 2026  19:54:09 +0000 (0:00:00.070)       0:00:20.374 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:54:09 +0000 (0:00:00.087)       0:00:20.462 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:54:10 +0000 (0:00:00.367)       0:00:20.829 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:54:10 +0000 (0:00:00.071)       0:00:20.900 *********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:54:11 +0000 (0:00:01.669)       0:00:22.569 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:54:11 +0000 (0:00:00.081)       0:00:22.651 *********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:54:12 +0000 (0:00:00.336)       0:00:22.988 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:54:12 +0000 (0:00:00.072)       0:00:23.061 *********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:54:14 +0000 (0:00:02.105)       0:00:25.166 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Tuesday 17 March 2026  19:54:14 +0000 (0:00:00.134)       0:00:25.301 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Tuesday 17 March 2026  19:54:14 +0000 (0:00:00.073)       0:00:25.374 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Tuesday 17 March 2026  19:54:14 +0000 (0:00:00.070)       0:00:25.444 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Tuesday 17 March 2026  19:54:14 +0000 (0:00:00.069)       0:00:25.513 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Tuesday 17 March 2026  19:54:15 +0000 (0:00:00.984)       0:00:26.498 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Tuesday 17 March 2026  19:54:16 +0000 (0:00:00.713)       0:00:27.211 *********",
                                "ok: [controller-1] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-2] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-3] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Tuesday 17 March 2026  19:54:17 +0000 (0:00:01.427)       0:00:28.639 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:54:18 +0000 (0:00:00.784)       0:00:29.423 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:54:18 +0000 (0:00:00.006)       0:00:29.430 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 17 March 2026  19:54:18 +0000 (0:00:00.004)       0:00:29.435 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Tuesday 17 March 2026  19:54:18 +0000 (0:00:00.004)       0:00:29.440 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:54:19 +0000 (0:00:00.521)       0:00:29.961 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:54:19 +0000 (0:00:00.346)       0:00:30.307 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:54:19 +0000 (0:00:00.101)       0:00:30.409 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:54:20 +0000 (0:00:00.471)       0:00:30.881 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:54:21 +0000 (0:00:01.440)       0:00:32.321 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/critest-v1.34.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:54:21 +0000 (0:00:00.114)       0:00:32.435 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:54:22 +0000 (0:00:00.496)       0:00:32.932 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Tuesday 17 March 2026  19:54:23 +0000 (0:00:01.451)       0:00:34.383 *********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Tuesday 17 March 2026  19:54:24 +0000 (0:00:00.727)       0:00:35.111 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:54:24 +0000 (0:00:00.373)       0:00:35.485 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:54:25 +0000 (0:00:00.343)       0:00:35.828 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.8.0/cni-plugins-linux-amd64-v1.8.0.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:54:25 +0000 (0:00:00.100)       0:00:35.928 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:54:25 +0000 (0:00:00.508)       0:00:36.437 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Tuesday 17 March 2026  19:54:28 +0000 (0:00:02.294)       0:00:38.731 *********",
                                "ok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "ok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "ok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Install additional packages] ***********",
                                "Tuesday 17 March 2026  19:54:28 +0000 (0:00:00.078)       0:00:38.810 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Tuesday 17 March 2026  19:54:29 +0000 (0:00:00.902)       0:00:39.712 *********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Tuesday 17 March 2026  19:54:29 +0000 (0:00:00.463)       0:00:40.176 *********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Tuesday 17 March 2026  19:54:30 +0000 (0:00:00.697)       0:00:40.873 *********",
                                "ok: [controller-1] => (item=br_netfilter)",
                                "ok: [controller-2] => (item=br_netfilter)",
                                "ok: [controller-3] => (item=br_netfilter)",
                                "ok: [controller-2] => (item=ip_tables)",
                                "ok: [controller-1] => (item=ip_tables)",
                                "ok: [controller-3] => (item=ip_tables)",
                                "ok: [controller-2] => (item=ip6_tables)",
                                "ok: [controller-3] => (item=ip6_tables)",
                                "ok: [controller-1] => (item=ip6_tables)",
                                "ok: [controller-2] => (item=nf_conntrack)",
                                "ok: [controller-3] => (item=nf_conntrack)",
                                "ok: [controller-1] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  19:54:31 +0000 (0:00:01.264)       0:00:42.138 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  19:54:31 +0000 (0:00:00.352)       0:00:42.491 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  19:54:31 +0000 (0:00:00.067)       0:00:42.558 *********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  19:54:33 +0000 (0:00:01.659)       0:00:44.218 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Tuesday 17 March 2026  19:54:33 +0000 (0:00:00.085)       0:00:44.303 *********",
                                "ok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "ok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "ok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************",
                                "Tuesday 17 March 2026  19:54:33 +0000 (0:00:00.092)       0:00:44.396 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Tuesday 17 March 2026  19:54:33 +0000 (0:00:00.074)       0:00:44.470 *********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Tuesday 17 March 2026  19:54:34 +0000 (0:00:00.991)       0:00:45.461 *********",
                                "ok: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "ok: [controller-1] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "ok: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "ok: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "ok: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "ok: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "ok: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "ok: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "ok: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "ok: [controller-1] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "ok: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "ok: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "ok: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "ok: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "ok: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "ok: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "ok: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "ok: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "ok: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "ok: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "ok: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***",
                                "Tuesday 17 March 2026  19:54:37 +0000 (0:00:02.307)       0:00:47.769 *********",
                                "ok: [controller-1] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller-1] => (item=/etc/kubernetes)",
                                "ok: [controller-2] => (item=/etc/kubernetes)",
                                "ok: [controller-3] => (item=/etc/kubernetes)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********",
                                "Tuesday 17 March 2026  19:54:38 +0000 (0:00:00.888)       0:00:48.657 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Tuesday 17 March 2026  19:54:38 +0000 (0:00:00.682)       0:00:49.339 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Tuesday 17 March 2026  19:54:39 +0000 (0:00:00.727)       0:00:50.067 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Tuesday 17 March 2026  19:54:39 +0000 (0:00:00.439)       0:00:50.506 *********",
                                "[ERROR]: Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.",
                                "",
                                "Task failed.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:78:7",
                                "",
                                "76       register: kubelet_swapon",
                                "77",
                                "78     - name: Disable swap",
                                "         ^ column 7",
                                "",
                                "<<< caused by >>>",
                                "",
                                "Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11",
                                "",
                                "81       ignore_errors: \"{{ ansible_check_mode }}\"",
                                "82       when:",
                                "83         - kubelet_swapon.stdout",
                                "             ^ column 11",
                                "",
                                "Broken conditionals can be temporarily allowed with the `ALLOW_BROKEN_CONDITIONALS` configuration option.",
                                "",
                                "fatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "fatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "fatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "...ignoring",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********",
                                "Tuesday 17 March 2026  19:54:39 +0000 (0:00:00.070)       0:00:50.577 *********",
                                "ok: [controller-1] => (item=swap)",
                                "ok: [controller-3] => (item=swap)",
                                "ok: [controller-2] => (item=swap)",
                                "ok: [controller-1] => (item=none)",
                                "ok: [controller-2] => (item=none)",
                                "ok: [controller-3] => (item=none)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***",
                                "Tuesday 17 March 2026  19:54:40 +0000 (0:00:00.777)       0:00:51.354 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Tuesday 17 March 2026  19:54:41 +0000 (0:00:00.692)       0:00:52.047 *********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Tuesday 17 March 2026  19:54:41 +0000 (0:00:00.523)       0:00:52.570 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Tuesday 17 March 2026  19:54:41 +0000 (0:00:00.006)       0:00:52.577 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Tuesday 17 March 2026  19:54:41 +0000 (0:00:00.005)       0:00:52.582 *********",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Tuesday 17 March 2026  19:54:41 +0000 (0:00:00.005)       0:00:52.588 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Tuesday 17 March 2026  19:54:42 +0000 (0:00:00.519)       0:00:53.107 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Tuesday 17 March 2026  19:54:43 +0000 (0:00:00.898)       0:00:54.005 *********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Tuesday 17 March 2026  19:54:44 +0000 (0:00:00.914)       0:00:54.920 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Tuesday 17 March 2026  19:54:44 +0000 (0:00:00.438)       0:00:55.358 *********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Tuesday 17 March 2026  19:54:45 +0000 (0:00:00.545)       0:00:55.904 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************",
                                "Tuesday 17 March 2026  19:54:45 +0000 (0:00:00.144)       0:00:56.048 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***",
                                "Tuesday 17 March 2026  19:54:45 +0000 (0:00:00.141)       0:00:56.189 *********",
                                "ok: [controller-1] => (item=controller-1)",
                                "ok: [controller-2 -> controller-1(199.19.213.29)] => (item=controller-1)",
                                "ok: [controller-3 -> controller-1(199.19.213.29)] => (item=controller-1)",
                                "ok: [controller-1 -> controller-2(199.19.213.201)] => (item=controller-2)",
                                "ok: [controller-2] => (item=controller-2)",
                                "ok: [controller-3 -> controller-2(199.19.213.201)] => (item=controller-2)",
                                "ok: [controller-1 -> controller-3(199.19.213.175)] => (item=controller-3)",
                                "ok: [controller-3] => (item=controller-3)",
                                "ok: [controller-2 -> controller-3(199.19.213.175)] => (item=controller-3)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Tuesday 17 March 2026  19:54:46 +0000 (0:00:00.971)       0:00:57.161 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Tuesday 17 March 2026  19:54:46 +0000 (0:00:00.082)       0:00:57.243 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Tuesday 17 March 2026  19:54:46 +0000 (0:00:00.065)       0:00:57.308 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***",
                                "Tuesday 17 March 2026  19:54:46 +0000 (0:00:00.069)       0:00:57.377 *********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Tuesday 17 March 2026  19:54:47 +0000 (0:00:00.827)       0:00:58.205 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Tuesday 17 March 2026  19:54:47 +0000 (0:00:00.070)       0:00:58.275 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Tuesday 17 March 2026  19:54:47 +0000 (0:00:00.067)       0:00:58.343 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Tuesday 17 March 2026  19:54:47 +0000 (0:00:00.069)       0:00:58.412 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Tuesday 17 March 2026  19:54:47 +0000 (0:00:00.069)       0:00:58.481 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Tuesday 17 March 2026  19:54:47 +0000 (0:00:00.069)       0:00:58.551 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Tuesday 17 March 2026  19:54:47 +0000 (0:00:00.085)       0:00:58.637 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Tuesday 17 March 2026  19:54:48 +0000 (0:00:00.079)       0:00:58.716 *********",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Tuesday 17 March 2026  19:54:48 +0000 (0:00:00.365)       0:00:59.082 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Tuesday 17 March 2026  19:54:48 +0000 (0:00:00.358)       0:00:59.440 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***",
                                "Tuesday 17 March 2026  19:54:48 +0000 (0:00:00.071)       0:00:59.512 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***",
                                "Tuesday 17 March 2026  19:54:49 +0000 (0:00:00.353)       0:00:59.865 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******",
                                "Tuesday 17 March 2026  19:54:49 +0000 (0:00:00.348)       0:01:00.214 *********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************",
                                "Tuesday 17 March 2026  19:54:49 +0000 (0:00:00.338)       0:01:00.552 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***",
                                "Tuesday 17 March 2026  19:54:49 +0000 (0:00:00.086)       0:01:00.639 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************",
                                "Tuesday 17 March 2026  19:54:50 +0000 (0:00:00.079)       0:01:00.719 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***",
                                "Tuesday 17 March 2026  19:54:50 +0000 (0:00:00.087)       0:01:00.806 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***",
                                "Tuesday 17 March 2026  19:54:51 +0000 (0:00:01.014)       0:01:01.820 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************",
                                "Tuesday 17 March 2026  19:54:51 +0000 (0:00:00.833)       0:01:02.653 *********",
                                "skipping: [controller-1] => (item=DaemonSet)",
                                "skipping: [controller-1] => (item=ConfigMap)",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************",
                                "Tuesday 17 March 2026  19:54:52 +0000 (0:00:00.039)       0:01:02.693 *********",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***",
                                "Tuesday 17 March 2026  19:58:53 +0000 (0:04:01.863)       0:05:04.557 *********",
                                "[ERROR]: Task failed: Module failed: non-zero return code",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml:95:7",
                                "",
                                "93         kubeadm upgrade apply --v=5 --yes v{{ kubernetes_version }}",
                                "94",
                                "95     - name: Check if the Kubernetes API services is up to date",
                                "         ^ column 7",
                                "",
                                "fatal: [controller-3]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.009178\", \"end\": \"2026-03-17 19:58:54.436014\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-17 19:58:54.426836\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}",
                                "fatal: [controller-2]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.007246\", \"end\": \"2026-03-17 19:58:54.431813\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-17 19:58:54.424567\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}",
                                "ok: [controller-1]",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***",
                                "Tuesday 17 March 2026  19:58:54 +0000 (0:00:00.569)       0:05:05.127 *********",
                                "skipping: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************",
                                "Tuesday 17 March 2026  20:05:05 +0000 (0:06:10.887)       0:11:16.015 *********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***",
                                "Tuesday 17 March 2026  20:05:05 +0000 (0:00:00.076)       0:11:16.092 *********",
                                "changed: [controller-1]",
                                "[ERROR]: Task failed: Module failed: non-zero return code",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/main.yml:19:3",
                                "",
                                "17   ansible.builtin.include_tasks: nodes.yml",
                                "18",
                                "19 - name: Upgrade & restart Kubelet node for upgrade (if needed)",
                                "     ^ column 3",
                                "",
                                "fatal: [controller-2]: FAILED! => {\"changed\": true, \"cmd\": [\"kubeadm\", \"upgrade\", \"node\"], \"delta\": \"0:00:03.817825\", \"end\": \"2026-03-17 20:05:16.817637\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-17 20:05:12.999812\", \"stderr\": \"W0317 20:05:13.113402    8400 initconfiguration.go:125] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme \\\"unix\\\" to the \\\"criSocket\\\" with value \\\"/run/containerd/containerd.sock\\\". Please update your configuration!\\nW0317 20:05:13.624486    8400 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\\nerror: error execution phase addon/coredns: failed to determine whether all the control plane instances have been upgraded: failed to list kube-apiserver Pod from cluster: Get \\\"https://199.19.213.29:6443/api/v1/namespaces/kube-system/pods?labelSelector=component%3Dkube-apiserver\\\": dial tcp 199.19.213.29:6443: connect: connection refused - error from a previous attempt: unexpected EOF\\nTo see the stack trace of this error execute with --v=5 or higher\", \"stderr_lines\": [\"W0317 20:05:13.113402    8400 initconfiguration.go:125] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme \\\"unix\\\" to the \\\"criSocket\\\" with value \\\"/run/containerd/containerd.sock\\\". Please update your configuration!\", \"W0317 20:05:13.624486    8400 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\", \"error: error execution phase addon/coredns: failed to determine whether all the control plane instances have been upgraded: failed to list kube-apiserver Pod from cluster: Get \\\"https://199.19.213.29:6443/api/v1/namespaces/kube-system/pods?labelSelector=component%3Dkube-apiserver\\\": dial tcp 199.19.213.29:6443: connect: connection refused - error from a previous attempt: unexpected EOF\", \"To see the stack trace of this error execute with --v=5 or higher\"], \"stdout\": \"[upgrade] Reading configuration from the \\\"kubeadm-config\\\" ConfigMap in namespace \\\"kube-system\\\"...\\n[upgrade] Use 'kubeadm init phase upload-config kubeadm --config your-config-file' to re-upload it.\\n[upgrade/preflight] Running pre-flight checks\\n[upgrade/preflight] Pulling images required for setting up a Kubernetes cluster\\n[upgrade/preflight] This might take a minute or two, depending on the speed of your internet connection\\n[upgrade/preflight] You can also perform this action beforehand using 'kubeadm config images pull'\\n[upgrade/control-plane] Upgrading your Static Pod-hosted control plane instance to version \\\"v1.34.0\\\"...\\n[upgrade/staticpods] Writing new Static Pod manifests to \\\"/etc/kubernetes/tmp/kubeadm-upgraded-manifests3542619676\\\"\\n[upgrade/staticpods] Preparing for \\\"etcd\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of etcd are equal, skipping upgrade\\n[upgrade/etcd] Waiting for etcd to become available\\n[upgrade/staticpods] Preparing for \\\"kube-apiserver\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of kube-apiserver are equal, skipping upgrade\\n[upgrade/staticpods] Preparing for \\\"kube-controller-manager\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of kube-controller-manager are equal, skipping upgrade\\n[upgrade/staticpods] Preparing for \\\"kube-scheduler\\\" upgrade\\n[upgrade/staticpods] Current and new manifests of kube-scheduler are equal, skipping upgrade\\n[upgrade/control-plane] The control plane instance for this node was successfully upgraded!\\n[upgrade/kubeconfig] The kubeconfig files for this node were successfully upgraded!\\n[upgrade] Backing up kubelet config file to /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367/config.yaml\\n[patches] Applied patch of type \\\"application/strategic-merge-patch+json\\\" to target \\\"kubeletconfiguration\\\"\\n[kubelet-start] Writing kubelet configuration to file \\\"/var/lib/kubelet/config.yaml\\\"\\n[upgrade/kubelet-config] The kubelet configuration for this node was successfully upgraded!\", \"stdout_lines\": [\"[upgrade] Reading configuration from the \\\"kubeadm-config\\\" ConfigMap in namespace \\\"kube-system\\\"...\", \"[upgrade] Use 'kubeadm init phase upload-config kubeadm --config your-config-file' to re-upload it.\", \"[upgrade/preflight] Running pre-flight checks\", \"[upgrade/preflight] Pulling images required for setting up a Kubernetes cluster\", \"[upgrade/preflight] This might take a minute or two, depending on the speed of your internet connection\", \"[upgrade/preflight] You can also perform this action beforehand using 'kubeadm config images pull'\", \"[upgrade/control-plane] Upgrading your Static Pod-hosted control plane instance to version \\\"v1.34.0\\\"...\", \"[upgrade/staticpods] Writing new Static Pod manifests to \\\"/etc/kubernetes/tmp/kubeadm-upgraded-manifests3542619676\\\"\", \"[upgrade/staticpods] Preparing for \\\"etcd\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of etcd are equal, skipping upgrade\", \"[upgrade/etcd] Waiting for etcd to become available\", \"[upgrade/staticpods] Preparing for \\\"kube-apiserver\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of kube-apiserver are equal, skipping upgrade\", \"[upgrade/staticpods] Preparing for \\\"kube-controller-manager\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of kube-controller-manager are equal, skipping upgrade\", \"[upgrade/staticpods] Preparing for \\\"kube-scheduler\\\" upgrade\", \"[upgrade/staticpods] Current and new manifests of kube-scheduler are equal, skipping upgrade\", \"[upgrade/control-plane] The control plane instance for this node was successfully upgraded!\", \"[upgrade/kubeconfig] The kubeconfig files for this node were successfully upgraded!\", \"[upgrade] Backing up kubelet config file to /etc/kubernetes/tmp/kubeadm-kubelet-config2444127367/config.yaml\", \"[patches] Applied patch of type \\\"application/strategic-merge-patch+json\\\" to target \\\"kubeletconfiguration\\\"\", \"[kubelet-start] Writing kubelet configuration to file \\\"/var/lib/kubelet/config.yaml\\\"\", \"[upgrade/kubelet-config] The kubelet configuration for this node was successfully upgraded!\"]}",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***",
                                "Tuesday 17 March 2026  20:05:42 +0000 (0:00:37.393)       0:11:53.485 *********",
                                "changed: [controller-1]",
                                "",
                                "PLAY [Install control-plane components] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 17 March 2026  20:05:43 +0000 (0:00:01.067)       0:11:54.553 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 17 March 2026  20:05:45 +0000 (0:00:01.977)       0:11:56.530 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 17 March 2026  20:05:46 +0000 (0:00:00.332)       0:11:56.863 *********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Tuesday 17 March 2026  20:05:47 +0000 (0:00:01.119)       0:11:57.983 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  20:05:47 +0000 (0:00:00.333)       0:11:58.316 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  20:05:47 +0000 (0:00:00.061)       0:11:58.378 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  20:05:48 +0000 (0:00:00.445)       0:11:58.823 *********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************",
                                "Tuesday 17 March 2026  20:05:49 +0000 (0:00:01.454)       0:12:00.278 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************",
                                "Tuesday 17 March 2026  20:05:50 +0000 (0:00:00.401)       0:12:00.680 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************",
                                "Tuesday 17 March 2026  20:05:50 +0000 (0:00:00.314)       0:12:00.994 *********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***",
                                "Tuesday 17 March 2026  20:05:50 +0000 (0:00:00.373)       0:12:01.368 *********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***",
                                "Tuesday 17 March 2026  20:05:51 +0000 (0:00:00.340)       0:12:01.708 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install plugin] **********************************************************",
                                "Tuesday 17 March 2026  20:05:51 +0000 (0:00:00.329)       0:12:02.037 *********",
                                "included: vexxhost.containers.download_artifact for controller-1, controller-3",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 17 March 2026  20:05:51 +0000 (0:00:00.087)       0:12:02.125 *********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 17 March 2026  20:05:51 +0000 (0:00:00.061)       0:12:02.186 *********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 17 March 2026  20:05:51 +0000 (0:00:00.435)       0:12:02.622 *********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Tuesday 17 March 2026  20:05:53 +0000 (0:00:01.662)       0:12:04.285 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Tuesday 17 March 2026  20:05:53 +0000 (0:00:00.100)       0:12:04.385 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************",
                                "Tuesday 17 March 2026  20:05:54 +0000 (0:00:00.773)       0:12:05.159 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************",
                                "Tuesday 17 March 2026  20:05:55 +0000 (0:00:01.037)       0:12:06.196 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Tuesday 17 March 2026  20:05:58 +0000 (0:00:02.955)       0:12:09.152 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller-1, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Tuesday 17 March 2026  20:05:58 +0000 (0:00:00.061)       0:12:09.214 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************",
                                "Tuesday 17 March 2026  20:05:59 +0000 (0:00:00.637)       0:12:09.851 *********",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************",
                                "Tuesday 17 March 2026  20:06:01 +0000 (0:00:01.835)       0:12:11.687 *********",
                                "ok: [controller-1]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller-1               : ok=119  changed=7    unreachable=0    failed=0    skipped=28   rescued=0    ignored=1",
                                "controller-2               : ok=86   changed=4    unreachable=0    failed=1    skipped=29   rescued=0    ignored=2",
                                "controller-3               : ok=105  changed=5    unreachable=0    failed=0    skipped=29   rescued=0    ignored=2",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Tuesday 17 March 2026  20:06:01 +0000 (0:00:00.796)       0:12:12.483 *********",
                                "===============================================================================",
                                "vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services - 370.89s",
                                "vexxhost.kubernetes.kubernetes : Start an upgrade --------------------- 241.86s",
                                "vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed) -- 37.39s",
                                "vexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.96s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.43s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.31s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.29s",
                                "Gathering Facts --------------------------------------------------------- 2.20s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 2.11s",
                                "Gathering Facts --------------------------------------------------------- 1.98s",
                                "vexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------- 1.84s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.67s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.66s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.66s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.49s",
                                "vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.46s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.45s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.45s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.44s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.43s",
                                "CRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml",
                                "ERROR    [cluster-upgrade > converge] \u001b[31mExecuted: Failed\u001b[0m",
                                "ERROR    Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml"
                            ],
                            "zuul_log_id": "0242ac17-0011-9feb-0487-000000000008-1-controller1"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T20:06:02.202650Z",
                            "start": "2026-03-17T19:47:18.499797Z"
                        },
                        "id": "0242ac17-0011-9feb-0487-000000000008",
                        "name": "Run Molecule scenario"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 2,
            "failures": 1,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "post",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-03-17T20:06:07.308168Z",
                    "start": "2026-03-17T20:06:04.021964Z"
                },
                "id": "0242ac17-0011-0fa1-71b8-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1"
                            },
                            "changed": false
                        },
                        "controller-2": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2"
                            },
                            "changed": false
                        },
                        "controller-3": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-0fa1-71b8-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T20:06:04.117390Z",
                            "start": "2026-03-17T20:06:04.037906Z"
                        },
                        "id": "0242ac17-0011-0fa1-71b8-00000000000a",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-0fa1-71b8-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T20:06:04.163495Z",
                            "start": "2026-03-17T20:06:04.120790Z"
                        },
                        "id": "0242ac17-0011-0fa1-71b8-00000000000b",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-0fa1-71b8-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T20:06:04.982775Z",
                            "start": "2026-03-17T20:06:04.172195Z"
                        },
                        "id": "0242ac17-0011-0fa1-71b8-00000000000c",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.29:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.29:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-1",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.29:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.29:/home/zuul/zuul-output/artifacts/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.29:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.29:/home/zuul/zuul-output/docs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.201:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.201:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-2",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.201:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.201:/home/zuul/zuul-output/artifacts/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.201:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.201:/home/zuul/zuul-output/docs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.175:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.175:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/controller-3",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.175:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.175:/home/zuul/zuul-output/artifacts/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.175:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.175:/home/zuul/zuul-output/docs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-0fa1-71b8-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T20:06:06.654913Z",
                            "start": "2026-03-17T20:06:04.993474Z"
                        },
                        "id": "0242ac17-0011-0fa1-71b8-00000000000e",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/artifacts\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/* /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.007568",
                                    "end": "2026-03-17 20:06:07.035980",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/artifacts\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/artifacts/* /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/artifacts\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_no_log": false,
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-03-17 20:06:07.028412",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "artifacts",
                                    "zuul_log_id": "in-loop-ignore"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/docs\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/* /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.008678",
                                    "end": "2026-03-17 20:06:07.264927",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/docs\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/docs/* /var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/work/logs/docs\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_no_log": false,
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-03-17 20:06:07.256249",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-0fa1-71b8-000000000011",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T20:06:07.308168Z",
                            "start": "2026-03-17T20:06:06.668140Z"
                        },
                        "id": "0242ac17-0011-0fa1-71b8-000000000013",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-03-17T20:06:08.024304Z",
                    "start": "2026-03-17T20:06:07.328209Z"
                },
                "id": "0242ac17-0011-0fa1-71b8-000000000015",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "absent",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-2": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "absent",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-3": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "absent",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrjifPHeWkq8IaevpGQC84kQyT6uLuCFnECyeWEz3obqmzAXsSkBE8pjsOeTUaqeWNl2Pz1ttGUBaKo8BGYAUVDjG6JXhC4VCN7UOGLX7I8nidxTgKzvf7B+u/k63qL4mQbATws+zAL+R+Yg4HpUorSbSy+gfxuRy4LSK7gQfUAdAz7o96Ec2BqcvzJeC3EWi++ccEdp4pyE8ios/91aeQzRxC3d9fid8E9Wz9ZGvCSAICczOGwgIKgCtXP5S4akJJj8gEUkI+5g85IWmvDhdtg6Opnnr1JesuLyYM2i3K8ovj1LHdCQuQeMbsOzo4fBUWRZuk5sZVqcZqMXLU1zsJFGhrHbaUlBbGNaOwAvS8J8WkYJ0g588Us5bjfacWgQeZ5C6f4RVaolsQl3eidvJx8NSltiEjls54us8O95XeVxIQVquYf5MC9tg0QqaDBRP0y4IyiNDsAcC4H+ysSTj+wq9EfihQ29u+zbLAnH1e1CL7vAdWJzqZHfzdU9feOaE= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-0fa1-71b8-000000000018",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/78dbca21a77c4746a7a74c42711667c6/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-17T20:06:08.024304Z",
                            "start": "2026-03-17T20:06:07.333598Z"
                        },
                        "id": "0242ac17-0011-0fa1-71b8-00000000001a",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 4,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
