[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-03-11T23:25:00.599007Z",
                    "start": "2026-03-11T23:24:57.619983Z"
                },
                "id": "0242ac17-0011-dcd1-c462-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-11",
                                    "day": "11",
                                    "epoch": "1773271498",
                                    "epoch_int": "1773271498",
                                    "hour": "23",
                                    "iso8601": "2026-03-11T23:24:58Z",
                                    "iso8601_basic": "20260311T232458564892",
                                    "iso8601_basic_short": "20260311T232458",
                                    "iso8601_micro": "2026-03-11T23:24:58.564892Z",
                                    "minute": "24",
                                    "month": "03",
                                    "second": "58",
                                    "time": "23:24:58",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Wednesday",
                                    "weekday_number": "3",
                                    "weeknumber": "10",
                                    "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/d29727a84a3048eb896d3409f707b006/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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": "3593208",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-huP6VS3bbaIM/agent.3593207",
                                    "TMP": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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": 4.04052734375,
                                    "1m": 4.990234375,
                                    "5m": 4.431640625
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 5438,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 17354,
                                        "used": 14736
                                    },
                                    "real": {
                                        "free": 5438,
                                        "total": 32090,
                                        "used": 26652
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 9081707,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31519873,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796255,
                                        "inode_total": 20643840,
                                        "inode_used": 3847585,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198671872,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081707,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31519873,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796255,
                                        "inode_total": 20643840,
                                        "inode_used": 3847585,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198671872,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081691,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31519889,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198606336,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081679,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31519901,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198557184,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081671,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31519909,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198524416,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081611,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31519969,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198278656,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081574,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31520006,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198127104,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081548,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31520032,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198020608,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081543,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31520037,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37198000128,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 222896491,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 41044226,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 63596057,
                                        "inode_total": 67108864,
                                        "inode_used": 3512807,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 912984027136,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 9081483,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31520097,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16796254,
                                        "inode_total": 20643840,
                                        "inode_used": 3847586,
                                        "mount": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 37197754368,
                                        "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": 36935228,
                                "ansible_user_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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-11T23:24:58.664914Z",
                            "start": "2026-03-11T23:24:57.627132Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-00000000002c",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:24:58.694727Z",
                            "start": "2026-03-11T23:24:58.670190Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-00000000000a",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "d29/oss/d29727a84a3048eb896d3409f707b006"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000056",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:24:58.739902Z",
                            "start": "2026-03-11T23:24:58.710181Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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: 5ebdc030-1da1-11f1-811d-5a677c16b3ff\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:24:58.789630Z",
                            "start": "2026-03-11T23:24:58.746640Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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: np0000158541\nUsername: zuul\nDistro: Debian 13.3\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.204.45.3\n",
                                    "zj_item": "controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-2\nHostname: np0000158542\nUsername: zuul\nDistro: Debian 13.3\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 162.253.55.195\n",
                                    "zj_item": "controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-3\nHostname: np0000158543\nUsername: zuul\nDistro: Debian 13.3\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.204.45.242\n",
                                    "zj_item": "controller-3"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:24:59.206951Z",
                            "start": "2026-03-11T23:24:58.794578Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-00000000000c",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:24:59.679598Z",
                            "start": "2026-03-11T23:24:59.218624Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-000000000011",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "92b98d41970f1e7a1f0fa8d261533df297058b3f",
                            "dest": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "92b98d41970f1e7a1f0fa8d261533df297058b3f",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/.ansible/tmp/ansible-tmp-1773271499.7170103-84-20527735466788/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "8a0f3fde80a1d85957953045478e306c",
                            "mode": "0644",
                            "owner": "root",
                            "size": 24780,
                            "src": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/.ansible/tmp/ansible-tmp-1773271499.7170103-84-20527735466788/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:00.599007Z",
                            "start": "2026-03-11T23:24:59.685339Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-000000000012",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-03-11T23:25:08.395999Z",
                    "start": "2026-03-11T23:25:00.607957Z"
                },
                "id": "0242ac17-0011-dcd1-c462-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/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:00.875263Z",
                            "start": "2026-03-11T23:25:00.615714Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:00.933125Z",
                            "start": "2026-03-11T23:25:00.881726Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.507520",
                            "end": "2026-03-11 23:25:01.927679",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_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-dcd1-c462-0000000000a6-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-11 23:25:01.420159",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa.pub\nThe key fingerprint is:\nSHA256:S2Sb+QLa21Q5uGjJFbycxV+4ZLm1ReWwFQ3ewyAIR6Y zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|       .o+.. .ooB|\n|       .+o  .+oB.|\n|       E= o = =o+|\n|       + X = = o.|\n|      . S + + .  |\n|     + * = .     |\n|    . * = .      |\n|     . + .       |\n|      . .        |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:S2Sb+QLa21Q5uGjJFbycxV+4ZLm1ReWwFQ3ewyAIR6Y zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|       .o+.. .ooB|",
                                "|       .+o  .+oB.|",
                                "|       E= o = =o+|",
                                "|       + X = = o.|",
                                "|      . S + + .  |",
                                "|     + * = .     |",
                                "|    . * = .      |",
                                "|     . + .       |",
                                "|      . .        |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0011-dcd1-c462-0000000000a6-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:01.970775Z",
                            "start": "2026-03-11T23:25:00.962077Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:02.027107Z",
                            "start": "2026-03-11T23:25:01.974586Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:02.104478Z",
                            "start": "2026-03-11T23:25:02.056367Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:02.681421Z",
                            "start": "2026-03-11T23:25:02.112200Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:03.114387Z",
                            "start": "2026-03-11T23:25:02.687970Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-0000000000d6",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "3cfca2ec16ae5d5976ed48dc62205058b3e02014",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "d29727a84a3048eb896d3409f707b006_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "3cfca2ec16ae5d5976ed48dc62205058b3e02014",
                                    "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-1773271503.1604285-204-117490468127478/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "be3be47b06328c9ebb0c36a26548971a",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773271503.1604285-204-117490468127478/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "3cfca2ec16ae5d5976ed48dc62205058b3e02014",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "d29727a84a3048eb896d3409f707b006_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "3cfca2ec16ae5d5976ed48dc62205058b3e02014",
                                    "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-1773271503.173033-205-137936862978995/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "be3be47b06328c9ebb0c36a26548971a",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773271503.173033-205-137936862978995/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "3cfca2ec16ae5d5976ed48dc62205058b3e02014",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "d29727a84a3048eb896d3409f707b006_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "3cfca2ec16ae5d5976ed48dc62205058b3e02014",
                                    "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-1773271503.1824667-206-174294130897254/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "be3be47b06328c9ebb0c36a26548971a",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773271503.1824667-206-174294130897254/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:03.681079Z",
                            "start": "2026-03-11T23:25:03.118297Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-0000000000d7",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "a54e2d8fdd07b4470d19990b514cdb9ddac532a4",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "d29727a84a3048eb896d3409f707b006_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a54e2d8fdd07b4470d19990b514cdb9ddac532a4",
                                    "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-1773271503.7279406-234-156679803293542/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "3ce60176acaa13d51f1a569cea3a2440",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773271503.7279406-234-156679803293542/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "a54e2d8fdd07b4470d19990b514cdb9ddac532a4",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "d29727a84a3048eb896d3409f707b006_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a54e2d8fdd07b4470d19990b514cdb9ddac532a4",
                                    "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-1773271503.7327268-235-35066749756718/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "3ce60176acaa13d51f1a569cea3a2440",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773271503.7327268-235-35066749756718/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "a54e2d8fdd07b4470d19990b514cdb9ddac532a4",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "d29727a84a3048eb896d3409f707b006_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a54e2d8fdd07b4470d19990b514cdb9ddac532a4",
                                    "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-1773271503.7477384-236-109358424523982/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "3ce60176acaa13d51f1a569cea3a2440",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773271503.7477384-236-109358424523982/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:04.268092Z",
                            "start": "2026-03-11T23:25:03.685171Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:04.319717Z",
                            "start": "2026-03-11T23:25:04.272174Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-0000000000ad",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:04.837708Z",
                            "start": "2026-03-11T23:25:04.325199Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-0000000000af",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa"
                            ],
                            "delta": "0:00:00.014250",
                            "end": "2026-03-11 23:25:05.140451",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_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-dcd1-c462-0000000000b5-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-11 23:25:05.126201",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/d29727a84a3048eb896d3409f707b006_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0011-dcd1-c462-0000000000b5-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:05.183411Z",
                            "start": "2026-03-11T23:25:04.914853Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:05.582801Z",
                            "start": "2026-03-11T23:25:05.187470Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:05.650371Z",
                            "start": "2026-03-11T23:25:05.587124Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:06.029987Z",
                            "start": "2026-03-11T23:25:05.672435Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:07.124274Z",
                            "start": "2026-03-11T23:25:06.035506Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:07.772107Z",
                            "start": "2026-03-11T23:25:07.147293Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-dcd1-c462-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:08.395999Z",
                            "start": "2026-03-11T23:25:07.778271Z"
                        },
                        "id": "0242ac17-0011-dcd1-c462-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-11T23:25:12.366729Z",
                    "start": "2026-03-11T23:25:09.162616Z"
                },
                "id": "0242ac17-0011-95a5-1dbb-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-1773271509.2288978-5-123450571465106/uv-x86_64-unknown-linux-gnu7bisihex.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-1773271509.2288978-5-123450571465106/uv-x86_64-unknown-linux-gnu7bisihex.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-1773271509.222822-6-164138373169268/uv-x86_64-unknown-linux-gnuxncxg3ss.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-1773271509.222822-6-164138373169268/uv-x86_64-unknown-linux-gnuxncxg3ss.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-1773271509.2304797-7-154704461891407/uv-x86_64-unknown-linux-gnu1ypkvk3d.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-1773271509.2304797-7-154704461891407/uv-x86_64-unknown-linux-gnu1ypkvk3d.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-95a5-1dbb-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:11.771017Z",
                            "start": "2026-03-11T23:25:09.173886Z"
                        },
                        "id": "0242ac17-0011-95a5-1dbb-000000000009",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.015016",
                            "end": "2026-03-11 23:25:12.173028",
                            "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-95a5-1dbb-00000000000a-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-11 23:25:12.158012",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-95a5-1dbb-00000000000a-1-controller1"
                        },
                        "controller-2": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.012757",
                            "end": "2026-03-11 23:25:12.167838",
                            "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-95a5-1dbb-00000000000a-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-11 23:25:12.155081",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-95a5-1dbb-00000000000a-1-controller2"
                        },
                        "controller-3": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.014236",
                            "end": "2026-03-11 23:25:12.203901",
                            "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-95a5-1dbb-00000000000a-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-03-11 23:25:12.189665",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-95a5-1dbb-00000000000a-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-95a5-1dbb-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:12.366729Z",
                            "start": "2026-03-11T23:25:11.825659Z"
                        },
                        "id": "0242ac17-0011-95a5-1dbb-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-11T23:41:18.076990Z",
                    "start": "2026-03-11T23:25:13.111468Z"
                },
                "id": "0242ac17-0011-0375-dc86-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "checksum": "92b98d41970f1e7a1f0fa8d261533df297058b3f",
                            "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": "92b98d41970f1e7a1f0fa8d261533df297058b3f",
                                    "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-1773271513.1683397-5-83015971022920/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "8a0f3fde80a1d85957953045478e306c",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 24780,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1773271513.1683397-5-83015971022920/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:25:14.076164Z",
                            "start": "2026-03-11T23:25:13.123102Z"
                        },
                        "id": "0242ac17-0011-0375-dc86-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-11T23:25:14.426899Z",
                            "start": "2026-03-11T23:25:14.082520Z"
                        },
                        "id": "0242ac17-0011-0375-dc86-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:16:02.806913",
                            "end": "2026-03-11 23:41:17.645744",
                            "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-0375-dc86-000000000008-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 2,
                            "start": "2026-03-11 23:25:14.838831",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.13.5 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\nDownloading pygments (1.2MiB)\nDownloading ansible-core (2.3MiB)\nDownloading cryptography (4.3MiB)\n Downloading cryptography\n Downloading pygments\n Downloading ansible-core\nInstalled 36 packages in 50ms\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] *********************************************************\nWednesday 11 March 2026  23:25:42 +0000 (0:00:00.032)       0:00:00.032 *******\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-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-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-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [Install Debian packages] *************************************************\nWednesday 11 March 2026  23:25:43 +0000 (0:00:01.256)       0:00:01.288 *******\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 11 March 2026  23:25:49 +0000 (0:00:05.617)       0:00:06.906 *******\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nWednesday 11 March 2026  23:25:50 +0000 (0:00:00.859)       0:00:07.765 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nWednesday 11 March 2026  23:25:50 +0000 (0:00:00.468)       0:00:08.234 *******\nok: [controller-2] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-1] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-3] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-1] => (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] ****\nWednesday 11 March 2026  23:25:51 +0000 (0:00:01.439)       0:00:09.673 *******\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-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}\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-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}\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-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-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-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] *********\nWednesday 11 March 2026  23:25:52 +0000 (0:00:00.976)       0:00:10.650 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nWednesday 11 March 2026  23:25:53 +0000 (0:00:00.407)       0:00:11.057 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nWednesday 11 March 2026  23:25:53 +0000 (0:00:00.326)       0:00:11.384 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nWednesday 11 March 2026  23:25:53 +0000 (0:00:00.064)       0:00:11.448 *******\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nWednesday 11 March 2026  23:25:53 +0000 (0:00:00.069)       0:00:11.518 *******\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nWednesday 11 March 2026  23:25:54 +0000 (0:00:00.941)       0:00:12.459 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 11 March 2026  23:25:55 +0000 (0:00:00.319)       0:00:12.779 *******\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 11 March 2026  23:25:55 +0000 (0:00:00.003)       0:00:12.783 *******\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 11 March 2026  23:25:55 +0000 (0:00:00.002)       0:00:12.785 *******\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 11 March 2026  23:25:55 +0000 (0:00:00.058)       0:00:12.843 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:25:55 +0000 (0:00:00.867)       0:00:13.711 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 11 March 2026  23:25:56 +0000 (0:00:00.418)       0:00:14.130 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 11 March 2026  23:25:56 +0000 (0:00:00.087)       0:00:14.217 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:25:56 +0000 (0:00:00.353)       0:00:14.570 *******\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] *******************\nWednesday 11 March 2026  23:25:56 +0000 (0:00:00.113)       0:00:14.683 *******\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-3]\nchanged: [controller-2]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:25:57 +0000 (0:00:00.865)       0:00:15.549 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:25:57 +0000 (0:00:00.098)       0:00:15.647 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 11 March 2026  23:25:58 +0000 (0:00:00.361)       0:00:16.009 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:25:59 +0000 (0:00:01.060)       0:00:17.069 *******\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] *******************\nWednesday 11 March 2026  23:25:59 +0000 (0:00:00.109)       0:00:17.178 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:26:00 +0000 (0:00:01.016)       0:00:18.195 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 11 March 2026  23:26:03 +0000 (0:00:03.141)       0:00:21.337 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 11 March 2026  23:26:03 +0000 (0:00:00.069)       0:00:21.406 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 11 March 2026  23:26:03 +0000 (0:00:00.071)       0:00:21.478 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 11 March 2026  23:26:03 +0000 (0:00:00.072)       0:00:21.550 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 11 March 2026  23:26:11 +0000 (0:00:07.329)       0:00:28.880 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 11 March 2026  23:26:11 +0000 (0:00:00.751)       0:00:29.631 *******\nchanged: [controller-1] => (item={'path': '/etc/containerd'})\nchanged: [controller-2] => (item={'path': '/etc/containerd'})\nchanged: [controller-3] => (item={'path': '/etc/containerd'})\nchanged: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-1] => (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-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-3] => (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] **********\nWednesday 11 March 2026  23:26:13 +0000 (0:00:01.460)       0:00:31.091 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:26:14 +0000 (0:00:00.847)       0:00:31.938 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:26:14 +0000 (0:00:00.007)       0:00:31.946 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:26:14 +0000 (0:00:00.004)       0:00:31.951 *******\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nWednesday 11 March 2026  23:26:14 +0000 (0:00:00.005)       0:00:31.956 *******\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nWednesday 11 March 2026  23:26:15 +0000 (0:00:00.972)       0:00:32.929 *******\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 11 March 2026  23:26:17 +0000 (0:00:01.888)       0:00:34.818 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nWednesday 11 March 2026  23:26:17 +0000 (0:00:00.816)       0:00:35.635 *******\n[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000158541'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 np0000158541'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] ***\nWednesday 11 March 2026  23:26:18 +0000 (0:00:00.671)       0:00:36.306 *******\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nWednesday 11 March 2026  23:26:18 +0000 (0:00:00.043)       0:00:36.349 *******\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nWednesday 11 March 2026  23:26:18 +0000 (0:00:00.042)       0:00:36.392 *******\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nWednesday 11 March 2026  23:26:18 +0000 (0:00:00.039)       0:00:36.432 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nWednesday 11 March 2026  23:26:18 +0000 (0:00:00.073)       0:00:36.505 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:26:18 +0000 (0:00:00.090)       0:00:36.595 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:26:19 +0000 (0:00:00.353)       0:00:36.949 *******\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] *******************\nWednesday 11 March 2026  23:26:19 +0000 (0:00:00.094)       0:00:37.044 *******\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:26:21 +0000 (0:00:01.846)       0:00:38.891 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:26:21 +0000 (0:00:00.105)       0:00:38.996 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:26:21 +0000 (0:00:00.388)       0:00:39.385 *******\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] *******************\nWednesday 11 March 2026  23:26:21 +0000 (0:00:00.090)       0:00:39.475 *******\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:26:23 +0000 (0:00:01.250)       0:00:40.726 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 11 March 2026  23:26:23 +0000 (0:00:00.115)       0:00:40.842 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 11 March 2026  23:26:23 +0000 (0:00:00.071)       0:00:40.914 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 11 March 2026  23:26:23 +0000 (0:00:00.077)       0:00:40.992 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 11 March 2026  23:26:23 +0000 (0:00:00.077)       0:00:41.070 *******\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 11 March 2026  23:26:24 +0000 (0:00:01.012)       0:00:42.082 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 11 March 2026  23:26:25 +0000 (0:00:01.277)       0:00:43.359 *******\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-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-1] => (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-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', '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'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nWednesday 11 March 2026  23:26:27 +0000 (0:00:01.505)       0:00:44.864 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:26:27 +0000 (0:00:00.838)       0:00:45.703 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:26:27 +0000 (0:00:00.005)       0:00:45.709 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:26:27 +0000 (0:00:00.004)       0:00:45.713 *******\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 11 March 2026  23:26:28 +0000 (0:00:00.004)       0:00:45.718 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:26:28 +0000 (0:00:00.561)       0:00:46.279 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:26:28 +0000 (0:00:00.359)       0:00:46.638 *******\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] *******************\nWednesday 11 March 2026  23:26:29 +0000 (0:00:00.097)       0:00:46.736 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:26:30 +0000 (0:00:01.012)       0:00:47.748 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:26:31 +0000 (0:00:01.759)       0:00:49.508 *******\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] *******************\nWednesday 11 March 2026  23:26:31 +0000 (0:00:00.108)       0:00:49.617 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:26:32 +0000 (0:00:00.897)       0:00:50.514 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nWednesday 11 March 2026  23:26:34 +0000 (0:00:01.764)       0:00:52.279 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nWednesday 11 March 2026  23:26:35 +0000 (0:00:00.746)       0:00:53.025 *******\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:26:35 +0000 (0:00:00.356)       0:00:53.382 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:26:36 +0000 (0:00:00.405)       0:00:53.787 *******\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] *******************\nWednesday 11 March 2026  23:26:36 +0000 (0:00:00.096)       0:00:53.884 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:26:37 +0000 (0:00:01.245)       0:00:55.130 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nWednesday 11 March 2026  23:26:40 +0000 (0:00:03.006)       0:00:58.136 *******\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] ***********\nWednesday 11 March 2026  23:26:40 +0000 (0:00:00.082)       0:00:58.219 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nWednesday 11 March 2026  23:26:41 +0000 (0:00:00.966)       0:00:59.185 *******\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nWednesday 11 March 2026  23:26:41 +0000 (0:00:00.478)       0:00:59.664 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nWednesday 11 March 2026  23:26:42 +0000 (0:00:00.720)       0:01:00.384 *******\nchanged: [controller-3] => (item=br_netfilter)\nchanged: [controller-1] => (item=br_netfilter)\nchanged: [controller-2] => (item=br_netfilter)\nok: [controller-3] => (item=ip_tables)\nok: [controller-2] => (item=ip_tables)\nok: [controller-1] => (item=ip_tables)\nchanged: [controller-3] => (item=ip6_tables)\nchanged: [controller-2] => (item=ip6_tables)\nchanged: [controller-1] => (item=ip6_tables)\nchanged: [controller-3] => (item=nf_conntrack)\nchanged: [controller-2] => (item=nf_conntrack)\nchanged: [controller-1] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:26:44 +0000 (0:00:01.528)       0:01:01.913 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:26:44 +0000 (0:00:00.338)       0:01:02.251 *******\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] *******************\nWednesday 11 March 2026  23:26:44 +0000 (0:00:00.086)       0:01:02.337 *******\nchanged: [controller-3]\nchanged: [controller-2]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:26:46 +0000 (0:00:01.643)       0:01:03.981 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nWednesday 11 March 2026  23:26:46 +0000 (0:00:00.084)       0:01:04.065 *******\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] *************************\nWednesday 11 March 2026  23:26:46 +0000 (0:00:00.094)       0:01:04.159 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nWednesday 11 March 2026  23:26:46 +0000 (0:00:00.074)       0:01:04.234 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nWednesday 11 March 2026  23:26:49 +0000 (0:00:02.882)       0:01:07.116 *******\nchanged: [controller-1] => (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.ipv4.ip_forward', '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-iptables', '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.bridge.bridge-nf-call-ip6tables', 'value': 1})\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': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\n\nTASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***\nWednesday 11 March 2026  23:26:51 +0000 (0:00:02.218)       0:01:09.335 *******\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-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] ********\nWednesday 11 March 2026  23:26:52 +0000 (0:00:00.869)       0:01:10.205 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nWednesday 11 March 2026  23:26:53 +0000 (0:00:00.736)       0:01:10.941 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nWednesday 11 March 2026  23:26:53 +0000 (0:00:00.741)       0:01:11.682 *******\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nWednesday 11 March 2026  23:26:54 +0000 (0:00:00.424)       0:01:12.107 *******\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] ***********\nWednesday 11 March 2026  23:26:54 +0000 (0:00:00.073)       0:01:12.181 *******\nok: [controller-2] => (item=swap)\nok: [controller-1] => (item=swap)\nok: [controller-3] => (item=swap)\nok: [controller-2] => (item=none)\nok: [controller-1] => (item=none)\nok: [controller-3] => (item=none)\n\nTASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***\nWednesday 11 March 2026  23:26:55 +0000 (0:00:00.754)       0:01:12.935 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nWednesday 11 March 2026  23:26:55 +0000 (0:00:00.710)       0:01:13.645 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 11 March 2026  23:26:56 +0000 (0:00:00.744)       0:01:14.390 *******\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 11 March 2026  23:26:56 +0000 (0:00:00.006)       0:01:14.396 *******\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 11 March 2026  23:26:56 +0000 (0:00:00.004)       0:01:14.401 *******\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nWednesday 11 March 2026  23:26:56 +0000 (0:00:00.004)       0:01:14.405 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nWednesday 11 March 2026  23:26:58 +0000 (0:00:01.539)       0:01:15.945 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nWednesday 11 March 2026  23:26:59 +0000 (0:00:00.805)       0:01:16.750 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nWednesday 11 March 2026  23:26:59 +0000 (0:00:00.930)       0:01:17.681 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nWednesday 11 March 2026  23:27:00 +0000 (0:00:00.899)       0:01:18.580 *******\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nWednesday 11 March 2026  23:27:01 +0000 (0:00:00.430)       0:01:19.010 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nWednesday 11 March 2026  23:27:01 +0000 (0:00:00.680)       0:01:19.691 *******\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] **********************\nWednesday 11 March 2026  23:27:02 +0000 (0:00:00.126)       0:01:19.817 *******\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] ***\nWednesday 11 March 2026  23:27:02 +0000 (0:00:00.126)       0:01:19.944 *******\nok: [controller-1] => (item=controller-1)\nok: [controller-2 -> controller-1(199.204.45.3)] => (item=controller-1)\nok: [controller-3 -> controller-1(199.204.45.3)] => (item=controller-1)\nok: [controller-3 -> controller-2(162.253.55.195)] => (item=controller-2)\nok: [controller-2] => (item=controller-2)\nok: [controller-1 -> controller-2(162.253.55.195)] => (item=controller-2)\nok: [controller-3] => (item=controller-3)\nok: [controller-2 -> controller-3(199.204.45.242)] => (item=controller-3)\nok: [controller-1 -> controller-3(199.204.45.242)] => (item=controller-3)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nWednesday 11 March 2026  23:27:03 +0000 (0:00:00.886)       0:01:20.830 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nWednesday 11 March 2026  23:27:03 +0000 (0:00:00.064)       0:01:20.895 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nWednesday 11 March 2026  23:27:03 +0000 (0:00:00.078)       0:01:20.974 *******\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] ***\nWednesday 11 March 2026  23:27:03 +0000 (0:00:00.065)       0:01:21.040 *******\nskipping: [controller-2]\nskipping: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.683)       0:01:21.723 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.074)       0:01:21.798 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.075)       0:01:21.874 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.071)       0:01:21.946 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.072)       0:01:22.018 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.071)       0:01:22.090 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.073)       0:01:22.164 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nWednesday 11 March 2026  23:27:04 +0000 (0:00:00.073)       0:01:22.237 *******\nchanged: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nWednesday 11 March 2026  23:27:38 +0000 (0:00:34.344)       0:01:56.582 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nWednesday 11 March 2026  23:27:39 +0000 (0:00:00.333)       0:01:56.915 *******\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] ***\nWednesday 11 March 2026  23:27:39 +0000 (0:00:00.116)       0:01:57.032 *******\nok: [controller-2 -> controller-1(199.204.45.3)]\n\nTASK [vexxhost.kubernetes.kubernetes : Retrieve SHA256 certificate hash] *******\nWednesday 11 March 2026  23:27:39 +0000 (0:00:00.463)       0:01:57.496 *******\nok: [controller-2 -> controller-1(199.204.45.3)]\n\nTASK [vexxhost.kubernetes.kubernetes : Generate token for joining cluster] *****\nWednesday 11 March 2026  23:27:40 +0000 (0:00:00.526)       0:01:58.022 *******\nchanged: [controller-2 -> controller-1(199.204.45.3)]\n\nTASK [vexxhost.kubernetes.kubernetes : Upload kubeadm configuration] ***********\nWednesday 11 March 2026  23:27:40 +0000 (0:00:00.378)       0:01:58.401 *******\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nWednesday 11 March 2026  23:27:41 +0000 (0:00:00.738)       0:01:59.140 *******\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***\nWednesday 11 March 2026  23:28:59 +0000 (0:01:17.664)       0:03:16.805 *******\nchanged: [controller-3]\nchanged: [controller-2]\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***\nWednesday 11 March 2026  23:28:59 +0000 (0:00:00.485)       0:03:17.290 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******\nWednesday 11 March 2026  23:28:59 +0000 (0:00:00.352)       0:03:17.643 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************\nWednesday 11 March 2026  23:29:00 +0000 (0:00:00.350)       0:03:17.993 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***\nWednesday 11 March 2026  23:29:00 +0000 (0:00:00.098)       0:03:18.092 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************\nWednesday 11 March 2026  23:29:00 +0000 (0:00:00.077)       0:03:18.169 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***\nWednesday 11 March 2026  23:29:00 +0000 (0:00:00.083)       0:03:18.252 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***\nWednesday 11 March 2026  23:29:11 +0000 (0:00:10.610)       0:03:28.863 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************\nWednesday 11 March 2026  23:29:12 +0000 (0:00:00.996)       0:03:29.859 *******\nskipping: [controller-1] => (item=DaemonSet)\nskipping: [controller-1] => (item=ConfigMap)\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************\nWednesday 11 March 2026  23:29:12 +0000 (0:00:00.052)       0:03:29.911 *******\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***\nWednesday 11 March 2026  23:29:12 +0000 (0:00:00.044)       0:03:29.956 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***\nWednesday 11 March 2026  23:29:12 +0000 (0:00:00.075)       0:03:30.032 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************\nWednesday 11 March 2026  23:29:12 +0000 (0:00:00.093)       0:03:30.125 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***\nWednesday 11 March 2026  23:29:12 +0000 (0:00:00.072)       0:03:30.198 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***\nWednesday 11 March 2026  23:29:13 +0000 (0:00:01.300)       0:03:31.499 *******\nchanged: [controller-1]\n\nPLAY [Install control-plane components] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 11 March 2026  23:29:15 +0000 (0:00:01.277)       0:03:32.776 *******\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:29:16 +0000 (0:00:01.874)       0:03:34.651 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 11 March 2026  23:29:17 +0000 (0:00:00.361)       0:03:35.012 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 11 March 2026  23:29:18 +0000 (0:00:01.036)       0:03:36.049 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:29:18 +0000 (0:00:00.340)       0:03:36.390 *******\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] *******************\nWednesday 11 March 2026  23:29:18 +0000 (0:00:00.062)       0:03:36.453 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:29:19 +0000 (0:00:00.763)       0:03:37.216 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************\nWednesday 11 March 2026  23:29:21 +0000 (0:00:01.889)       0:03:39.106 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************\nWednesday 11 March 2026  23:29:21 +0000 (0:00:00.431)       0:03:39.537 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************\nWednesday 11 March 2026  23:29:22 +0000 (0:00:00.332)       0:03:39.870 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***\nWednesday 11 March 2026  23:29:22 +0000 (0:00:00.385)       0:03:40.255 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***\nWednesday 11 March 2026  23:29:22 +0000 (0:00:00.335)       0:03:40.591 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [Install plugin] **********************************************************\nWednesday 11 March 2026  23:29:23 +0000 (0:00:00.331)       0:03:40.923 *******\nincluded: vexxhost.containers.download_artifact for controller-1, controller-2, controller-3\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:29:23 +0000 (0:00:00.100)       0:03:41.024 *******\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] *******************\nWednesday 11 March 2026  23:29:23 +0000 (0:00:00.070)       0:03:41.094 *******\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:29:25 +0000 (0:00:02.117)       0:03:43.212 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 11 March 2026  23:29:27 +0000 (0:00:02.136)       0:03:45.349 *******\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] ***************\nWednesday 11 March 2026  23:29:27 +0000 (0:00:00.111)       0:03:45.460 *******\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************\nWednesday 11 March 2026  23:29:28 +0000 (0:00:00.772)       0:03:46.232 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************\nWednesday 11 March 2026  23:29:29 +0000 (0:00:00.912)       0:03:47.145 *******\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 11 March 2026  23:29:31 +0000 (0:00:02.217)       0:03:49.362 *******\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] ***************\nWednesday 11 March 2026  23:29:31 +0000 (0:00:00.070)       0:03:49.432 *******\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************\nWednesday 11 March 2026  23:29:32 +0000 (0:00:00.659)       0:03:50.092 *******\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************\nWednesday 11 March 2026  23:30:19 +0000 (0:00:47.266)       0:04:37.358 *******\nchanged: [controller-1]\n\nPLAY [Wait for all nodes to become Ready] **************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 11 March 2026  23:30:20 +0000 (0:00:00.806)       0:04:38.165 *******\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [Wait for node to be Ready] ***********************************************\nWednesday 11 March 2026  23:30:22 +0000 (0:00:01.975)       0:04:40.140 *******\nok: [controller-2 -> controller-1(199.204.45.3)]\nok: [controller-1]\nok: [controller-3 -> controller-1(199.204.45.3)]\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 ********************************************************************\nWednesday 11 March 2026  23:30:23 +0000 (0:00:00.821)       0:04:40.962 *******\n===============================================================================\nvexxhost.kubernetes.kubernetes : Join cluster -------------------------- 77.66s\nvexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 47.27s\nvexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 34.34s\nvexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems -- 10.61s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 7.33s\nInstall Debian packages ------------------------------------------------- 5.62s\nvexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 3.43s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.14s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.01s\nvexxhost.kubernetes.kubelet : Install additional packages --------------- 2.88s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.22s\nvexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.22s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.14s\nvexxhost.containers.download_artifact : Download item ------------------- 2.12s\nGathering Facts --------------------------------------------------------- 1.98s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.89s\nGathering Facts --------------------------------------------------------- 1.87s\nvexxhost.containers.download_artifact : Download item ------------------- 1.85s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.76s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.76s\nINFO     [cluster-upgrade > prepare] Executed: Successful\nINFO     [cluster-upgrade > converge] Executing\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 11 March 2026  23:30:24 +0000 (0:00:00.016)       0:00:00.016 *******\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-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-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-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nWednesday 11 March 2026  23:30:26 +0000 (0:00:02.258)       0:00:02.275 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nWednesday 11 March 2026  23:30:27 +0000 (0:00:00.446)       0:00:02.721 *******\nok: [controller-1] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-3] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-2] => (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-3] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-3] => (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] ****\nWednesday 11 March 2026  23:30:28 +0000 (0:00:01.415)       0:00:04.136 *******\nok: [controller-2] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)\nok: [controller-1] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)\nok: [controller-3] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)\nok: [controller-1] => (item=/etc/kubernetes/controller-manager.conf)\nok: [controller-2] => (item=/etc/kubernetes/controller-manager.conf)\nok: [controller-3] => (item=/etc/kubernetes/controller-manager.conf)\nok: [controller-1] => (item=/etc/kubernetes/scheduler.conf)\nok: [controller-2] => (item=/etc/kubernetes/scheduler.conf)\nok: [controller-3] => (item=/etc/kubernetes/scheduler.conf)\n\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nWednesday 11 March 2026  23:30:29 +0000 (0:00:00.933)       0:00:05.070 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nWednesday 11 March 2026  23:30:30 +0000 (0:00:00.398)       0:00:05.469 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nWednesday 11 March 2026  23:30:30 +0000 (0:00:00.308)       0:00:05.778 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nWednesday 11 March 2026  23:30:30 +0000 (0:00:00.062)       0:00:05.840 *******\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nWednesday 11 March 2026  23:30:30 +0000 (0:00:00.059)       0:00:05.900 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nWednesday 11 March 2026  23:30:31 +0000 (0:00:00.776)       0:00:06.676 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 11 March 2026  23:30:31 +0000 (0:00:00.317)       0:00:06.994 *******\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 11 March 2026  23:30:31 +0000 (0:00:00.004)       0:00:06.998 *******\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 11 March 2026  23:30:31 +0000 (0:00:00.002)       0:00:07.001 *******\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 11 March 2026  23:30:31 +0000 (0:00:00.054)       0:00:07.055 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:30:32 +0000 (0:00:01.008)       0:00:08.064 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 11 March 2026  23:30:33 +0000 (0:00:00.351)       0:00:08.415 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 11 March 2026  23:30:33 +0000 (0:00:00.073)       0:00:08.489 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:30:33 +0000 (0:00:00.352)       0:00:08.842 *******\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] *******************\nWednesday 11 March 2026  23:30:33 +0000 (0:00:00.088)       0:00:08.930 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:30:34 +0000 (0:00:00.545)       0:00:09.476 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:30:34 +0000 (0:00:00.081)       0:00:09.558 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 11 March 2026  23:30:34 +0000 (0:00:00.345)       0:00:09.904 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:30:35 +0000 (0:00:01.041)       0:00:10.946 *******\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] *******************\nWednesday 11 March 2026  23:30:35 +0000 (0:00:00.094)       0:00:11.040 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:30:36 +0000 (0:00:00.492)       0:00:11.533 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 11 March 2026  23:30:38 +0000 (0:00:02.328)       0:00:13.861 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 11 March 2026  23:30:38 +0000 (0:00:00.062)       0:00:13.924 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 11 March 2026  23:30:38 +0000 (0:00:00.064)       0:00:13.988 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 11 March 2026  23:30:38 +0000 (0:00:00.061)       0:00:14.049 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 11 March 2026  23:30:39 +0000 (0:00:00.888)       0:00:14.938 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 11 March 2026  23:30:40 +0000 (0:00:00.682)       0:00:15.620 *******\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] **********\nWednesday 11 March 2026  23:30:41 +0000 (0:00:01.446)       0:00:17.067 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:30:42 +0000 (0:00:00.755)       0:00:17.823 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:30:42 +0000 (0:00:00.006)       0:00:17.829 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:30:42 +0000 (0:00:00.004)       0:00:17.834 *******\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 11 March 2026  23:30:42 +0000 (0:00:00.005)       0:00:17.839 *******\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nWednesday 11 March 2026  23:30:44 +0000 (0:00:01.703)       0:00:19.543 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.894)       0:00:20.437 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.050)       0:00:20.488 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.048)       0:00:20.536 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.052)       0:00:20.589 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.066)       0:00:20.656 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.081)       0:00:20.737 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.348)       0:00:21.086 *******\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] *******************\nWednesday 11 March 2026  23:30:45 +0000 (0:00:00.076)       0:00:21.162 *******\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:30:47 +0000 (0:00:01.778)       0:00:22.941 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:30:47 +0000 (0:00:00.094)       0:00:23.036 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:30:48 +0000 (0:00:00.338)       0:00:23.374 *******\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] *******************\nWednesday 11 March 2026  23:30:48 +0000 (0:00:00.078)       0:00:23.453 *******\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:30:49 +0000 (0:00:01.338)       0:00:24.792 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 11 March 2026  23:30:49 +0000 (0:00:00.114)       0:00:24.906 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 11 March 2026  23:30:49 +0000 (0:00:00.066)       0:00:24.973 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 11 March 2026  23:30:49 +0000 (0:00:00.061)       0:00:25.034 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 11 March 2026  23:30:49 +0000 (0:00:00.063)       0:00:25.098 *******\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 11 March 2026  23:30:50 +0000 (0:00:00.885)       0:00:25.983 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 11 March 2026  23:30:51 +0000 (0:00:00.688)       0:00:26.671 *******\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-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-2] => (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] **********\nWednesday 11 March 2026  23:30:52 +0000 (0:00:01.439)       0:00:28.111 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:30:53 +0000 (0:00:00.814)       0:00:28.925 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:30:53 +0000 (0:00:00.006)       0:00:28.931 *******\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 11 March 2026  23:30:53 +0000 (0:00:00.004)       0:00:28.936 *******\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 11 March 2026  23:30:53 +0000 (0:00:00.005)       0:00:28.941 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:30:54 +0000 (0:00:00.570)       0:00:29.512 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:30:54 +0000 (0:00:00.349)       0:00:29.862 *******\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] *******************\nWednesday 11 March 2026  23:30:54 +0000 (0:00:00.095)       0:00:29.957 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:30:55 +0000 (0:00:00.461)       0:00:30.418 *******\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:30:56 +0000 (0:00:01.459)       0:00:31.877 *******\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] *******************\nWednesday 11 March 2026  23:30:56 +0000 (0:00:00.094)       0:00:31.972 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:30:57 +0000 (0:00:00.517)       0:00:32.489 *******\nok: [controller-3]\nok: [controller-2]\nok: [controller-1]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nWednesday 11 March 2026  23:30:58 +0000 (0:00:01.420)       0:00:33.910 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nWednesday 11 March 2026  23:30:59 +0000 (0:00:00.674)       0:00:34.584 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:30:59 +0000 (0:00:00.355)       0:00:34.940 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:30:59 +0000 (0:00:00.329)       0:00:35.270 *******\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] *******************\nWednesday 11 March 2026  23:31:00 +0000 (0:00:00.096)       0:00:35.367 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:31:00 +0000 (0:00:00.486)       0:00:35.854 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nWednesday 11 March 2026  23:31:02 +0000 (0:00:02.348)       0:00:38.203 *******\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] ***********\nWednesday 11 March 2026  23:31:02 +0000 (0:00:00.079)       0:00:38.282 *******\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nWednesday 11 March 2026  23:31:03 +0000 (0:00:00.908)       0:00:39.190 *******\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nWednesday 11 March 2026  23:31:04 +0000 (0:00:00.472)       0:00:39.662 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nWednesday 11 March 2026  23:31:04 +0000 (0:00:00.672)       0:00:40.335 *******\nok: [controller-1] => (item=br_netfilter)\nok: [controller-3] => (item=br_netfilter)\nok: [controller-2] => (item=br_netfilter)\nok: [controller-3] => (item=ip_tables)\nok: [controller-1] => (item=ip_tables)\nok: [controller-2] => (item=ip_tables)\nok: [controller-1] => (item=ip6_tables)\nok: [controller-3] => (item=ip6_tables)\nok: [controller-2] => (item=ip6_tables)\nok: [controller-1] => (item=nf_conntrack)\nok: [controller-3] => (item=nf_conntrack)\nok: [controller-2] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:31:06 +0000 (0:00:01.280)       0:00:41.615 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:31:06 +0000 (0:00:00.367)       0:00:41.982 *******\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] *******************\nWednesday 11 March 2026  23:31:06 +0000 (0:00:00.088)       0:00:42.070 *******\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:31:08 +0000 (0:00:01.316)       0:00:43.387 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nWednesday 11 March 2026  23:31:08 +0000 (0:00:00.082)       0:00:43.470 *******\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] *************************\nWednesday 11 March 2026  23:31:08 +0000 (0:00:00.083)       0:00:43.553 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nWednesday 11 March 2026  23:31:08 +0000 (0:00:00.058)       0:00:43.612 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nWednesday 11 March 2026  23:31:09 +0000 (0:00:00.890)       0:00:44.502 *******\nok: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\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.bridge.bridge-nf-call-iptables', 'value': 1})\nok: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nok: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nok: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', '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-1] => (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-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nok: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nok: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nok: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nok: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nok: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nok: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nok: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nok: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nok: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\n\nTASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***\nWednesday 11 March 2026  23:31:11 +0000 (0:00:02.217)       0:00:46.720 *******\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-3] => (item=/etc/kubernetes)\nok: [controller-2] => (item=/etc/kubernetes)\nok: [controller-1] => (item=/etc/kubernetes/manifests)\nok: [controller-3] => (item=/etc/kubernetes/manifests)\nok: [controller-2] => (item=/etc/kubernetes/manifests)\n\nTASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********\nWednesday 11 March 2026  23:31:12 +0000 (0:00:00.889)       0:00:47.609 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nWednesday 11 March 2026  23:31:12 +0000 (0:00:00.688)       0:00:48.298 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nWednesday 11 March 2026  23:31:13 +0000 (0:00:00.709)       0:00:49.007 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nWednesday 11 March 2026  23:31:14 +0000 (0:00:00.422)       0:00:49.430 *******\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] ***********\nWednesday 11 March 2026  23:31:14 +0000 (0:00:00.066)       0:00:49.496 *******\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] ***\nWednesday 11 March 2026  23:31:14 +0000 (0:00:00.775)       0:00:50.272 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nWednesday 11 March 2026  23:31:16 +0000 (0:00:01.709)       0:00:51.981 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 11 March 2026  23:31:17 +0000 (0:00:00.534)       0:00:52.516 *******\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 11 March 2026  23:31:17 +0000 (0:00:00.007)       0:00:52.523 *******\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 11 March 2026  23:31:17 +0000 (0:00:00.005)       0:00:52.528 *******\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nWednesday 11 March 2026  23:31:17 +0000 (0:00:00.005)       0:00:52.534 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nWednesday 11 March 2026  23:31:17 +0000 (0:00:00.535)       0:00:53.069 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nWednesday 11 March 2026  23:31:18 +0000 (0:00:01.121)       0:00:54.191 *******\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nWednesday 11 March 2026  23:31:19 +0000 (0:00:00.946)       0:00:55.138 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nWednesday 11 March 2026  23:31:20 +0000 (0:00:00.426)       0:00:55.565 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nWednesday 11 March 2026  23:31:20 +0000 (0:00:00.517)       0:00:56.082 *******\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] **********************\nWednesday 11 March 2026  23:31:20 +0000 (0:00:00.122)       0:00:56.204 *******\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] ***\nWednesday 11 March 2026  23:31:20 +0000 (0:00:00.120)       0:00:56.325 *******\nok: [controller-2 -> controller-1(199.204.45.3)] => (item=controller-1)\nok: [controller-1] => (item=controller-1)\nok: [controller-3 -> controller-1(199.204.45.3)] => (item=controller-1)\nok: [controller-2] => (item=controller-2)\nok: [controller-1 -> controller-2(162.253.55.195)] => (item=controller-2)\nok: [controller-3 -> controller-2(162.253.55.195)] => (item=controller-2)\nok: [controller-1 -> controller-3(199.204.45.242)] => (item=controller-3)\nok: [controller-3] => (item=controller-3)\nok: [controller-2 -> controller-3(199.204.45.242)] => (item=controller-3)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nWednesday 11 March 2026  23:31:22 +0000 (0:00:01.910)       0:00:58.235 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nWednesday 11 March 2026  23:31:22 +0000 (0:00:00.081)       0:00:58.317 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nWednesday 11 March 2026  23:31:23 +0000 (0:00:00.068)       0:00:58.385 *******\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] ***\nWednesday 11 March 2026  23:31:23 +0000 (0:00:00.073)       0:00:58.459 *******\nskipping: [controller-2]\nskipping: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nWednesday 11 March 2026  23:31:23 +0000 (0:00:00.781)       0:00:59.241 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nWednesday 11 March 2026  23:31:23 +0000 (0:00:00.067)       0:00:59.309 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nWednesday 11 March 2026  23:31:24 +0000 (0:00:00.067)       0:00:59.376 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nWednesday 11 March 2026  23:31:24 +0000 (0:00:00.075)       0:00:59.452 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nWednesday 11 March 2026  23:31:24 +0000 (0:00:00.068)       0:00:59.520 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nWednesday 11 March 2026  23:31:24 +0000 (0:00:00.068)       0:00:59.588 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nWednesday 11 March 2026  23:31:24 +0000 (0:00:00.069)       0:00:59.658 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nWednesday 11 March 2026  23:31:24 +0000 (0:00:00.067)       0:00:59.725 *******\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nWednesday 11 March 2026  23:31:24 +0000 (0:00:00.336)       0:01:00.062 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nWednesday 11 March 2026  23:31:25 +0000 (0:00:00.335)       0:01:00.398 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***\nWednesday 11 March 2026  23:31:25 +0000 (0:00:00.078)       0:01:00.476 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***\nWednesday 11 March 2026  23:31:25 +0000 (0:00:00.343)       0:01:00.819 *******\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******\nWednesday 11 March 2026  23:31:25 +0000 (0:00:00.345)       0:01:01.165 *******\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************\nWednesday 11 March 2026  23:31:26 +0000 (0:00:00.336)       0:01:01.501 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***\nWednesday 11 March 2026  23:31:26 +0000 (0:00:00.071)       0:01:01.573 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************\nWednesday 11 March 2026  23:31:26 +0000 (0:00:00.071)       0:01:01.644 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***\nWednesday 11 March 2026  23:31:26 +0000 (0:00:00.075)       0:01:01.719 *******\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***\nWednesday 11 March 2026  23:31:27 +0000 (0:00:00.979)       0:01:02.699 *******\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************\nWednesday 11 March 2026  23:31:28 +0000 (0:00:00.797)       0:01:03.496 *******\nskipping: [controller-1] => (item=DaemonSet)\nskipping: [controller-1] => (item=ConfigMap)\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************\nWednesday 11 March 2026  23:31:28 +0000 (0:00:00.044)       0:01:03.541 *******\nchanged: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***\nWednesday 11 March 2026  23:35:02 +0000 (0:03:34.302)       0:04:37.843 *******\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-2]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.007544\", \"end\": \"2026-03-11 23:35:02.958007\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-11 23:35:02.950463\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}\nfatal: [controller-3]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.007895\", \"end\": \"2026-03-11 23:35:03.014378\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-11 23:35:03.006483\", \"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] ***\nWednesday 11 March 2026  23:35:03 +0000 (0:00:00.568)       0:04:38.412 *******\nskipping: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************\nWednesday 11 March 2026  23:40:24 +0000 (0:05:21.797)       0:10:00.209 *******\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***\nWednesday 11 March 2026  23:40:24 +0000 (0:00:00.078)       0:10:00.287 *******\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:02.664362\", \"end\": \"2026-03-11 23:40:34.871054\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-11 23:40:32.206692\", \"stderr\": \"W0311 23:40:32.293827    8554 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!\\nW0311 23:40:32.701609    8554 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config147592040 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\\nerror: error execution phase kubelet-config: could not remove the CRI socket annotation from Node \\\"controller-2\\\": error patching Node \\\"controller-2\\\": Patch \\\"https://199.204.45.3:6443/api/v1/nodes/controller-2?timeout=10s\\\": unexpected EOF\\nTo see the stack trace of this error execute with --v=5 or higher\", \"stderr_lines\": [\"W0311 23:40:32.293827    8554 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!\", \"W0311 23:40:32.701609    8554 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config147592040 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\", \"error: error execution phase kubelet-config: could not remove the CRI socket annotation from Node \\\"controller-2\\\": error patching Node \\\"controller-2\\\": Patch \\\"https://199.204.45.3:6443/api/v1/nodes/controller-2?timeout=10s\\\": 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-manifests2322931291\\\"\\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-config147592040/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\\\"\", \"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-manifests2322931291\\\"\", \"[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-config147592040/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\\\"\"]}\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***\nWednesday 11 March 2026  23:40:58 +0000 (0:00:33.811)       0:10:34.099 *******\nchanged: [controller-1]\n\nPLAY [Install control-plane components] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 11 March 2026  23:40:59 +0000 (0:00:01.036)       0:10:35.135 *******\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 11 March 2026  23:41:00 +0000 (0:00:01.053)       0:10:36.189 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 11 March 2026  23:41:01 +0000 (0:00:00.346)       0:10:36.535 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 11 March 2026  23:41:02 +0000 (0:00:00.959)       0:10:37.495 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:41:02 +0000 (0:00:00.336)       0:10:37.831 *******\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] *******************\nWednesday 11 March 2026  23:41:02 +0000 (0:00:00.053)       0:10:37.885 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:41:02 +0000 (0:00:00.421)       0:10:38.306 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************\nWednesday 11 March 2026  23:41:05 +0000 (0:00:02.454)       0:10:40.761 *******\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************\nWednesday 11 March 2026  23:41:05 +0000 (0:00:00.409)       0:10:41.171 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************\nWednesday 11 March 2026  23:41:06 +0000 (0:00:00.324)       0:10:41.496 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***\nWednesday 11 March 2026  23:41:06 +0000 (0:00:00.359)       0:10:41.855 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***\nWednesday 11 March 2026  23:41:06 +0000 (0:00:00.307)       0:10:42.163 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [Install plugin] **********************************************************\nWednesday 11 March 2026  23:41:07 +0000 (0:00:00.323)       0:10:42.486 *******\nincluded: vexxhost.containers.download_artifact for controller-1, controller-3\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 11 March 2026  23:41:07 +0000 (0:00:00.092)       0:10:42.579 *******\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] *******************\nWednesday 11 March 2026  23:41:07 +0000 (0:00:00.066)       0:10:42.645 *******\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 11 March 2026  23:41:07 +0000 (0:00:00.441)       0:10:43.087 *******\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 11 March 2026  23:41:09 +0000 (0:00:01.658)       0:10:44.746 *******\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] ***************\nWednesday 11 March 2026  23:41:09 +0000 (0:00:00.100)       0:10:44.847 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************\nWednesday 11 March 2026  23:41:10 +0000 (0:00:00.739)       0:10:45.586 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************\nWednesday 11 March 2026  23:41:11 +0000 (0:00:00.969)       0:10:46.555 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 11 March 2026  23:41:14 +0000 (0:00:02.842)       0:10:49.398 *******\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] ***************\nWednesday 11 March 2026  23:41:14 +0000 (0:00:00.054)       0:10:49.452 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************\nWednesday 11 March 2026  23:41:14 +0000 (0:00:00.616)       0:10:50.069 *******\nok: [controller-1]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************\nWednesday 11 March 2026  23:41:16 +0000 (0:00:01.858)       0:10:51.927 *******\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 ********************************************************************\nWednesday 11 March 2026  23:41:17 +0000 (0:00:00.818)       0:10:52.746 *******\n===============================================================================\nvexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services - 321.80s\nvexxhost.kubernetes.kubernetes : Start an upgrade --------------------- 214.30s\nvexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed) -- 33.81s\nvexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.84s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.45s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.35s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.33s\nGathering Facts --------------------------------------------------------- 2.26s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.22s\nvexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped --- 1.91s\nvexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------- 1.86s\nvexxhost.containers.download_artifact : Download item ------------------- 1.78s\nvexxhost.kubernetes.kubelet : Create noswap systemd service config file --- 1.71s\nvexxhost.containers.containerd : Enable and start service --------------- 1.70s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.66s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.46s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.45s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.44s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.42s\nvexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.42s\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 pygments (1.2MiB)",
                                "Downloading ansible-core (2.3MiB)",
                                "Downloading cryptography (4.3MiB)",
                                " Downloading cryptography",
                                " Downloading pygments",
                                " Downloading ansible-core",
                                "Installed 36 packages in 50ms",
                                "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] *********************************************************",
                                "Wednesday 11 March 2026  23:25:42 +0000 (0:00:00.032)       0:00:00.032 *******",
                                "[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-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-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-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install Debian packages] *************************************************",
                                "Wednesday 11 March 2026  23:25:43 +0000 (0:00:01.256)       0:00:01.288 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 11 March 2026  23:25:49 +0000 (0:00:05.617)       0:00:06.906 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Wednesday 11 March 2026  23:25:50 +0000 (0:00:00.859)       0:00:07.765 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Wednesday 11 March 2026  23:25:50 +0000 (0:00:00.468)       0:00:08.234 *******",
                                "ok: [controller-2] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-1] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-3] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-1] => (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] ****",
                                "Wednesday 11 March 2026  23:25:51 +0000 (0:00:01.439)       0:00:09.673 *******",
                                "[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-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}",
                                "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-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}",
                                "[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-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-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-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] *********",
                                "Wednesday 11 March 2026  23:25:52 +0000 (0:00:00.976)       0:00:10.650 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Wednesday 11 March 2026  23:25:53 +0000 (0:00:00.407)       0:00:11.057 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Wednesday 11 March 2026  23:25:53 +0000 (0:00:00.326)       0:00:11.384 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Wednesday 11 March 2026  23:25:53 +0000 (0:00:00.064)       0:00:11.448 *******",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Wednesday 11 March 2026  23:25:53 +0000 (0:00:00.069)       0:00:11.518 *******",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Wednesday 11 March 2026  23:25:54 +0000 (0:00:00.941)       0:00:12.459 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 11 March 2026  23:25:55 +0000 (0:00:00.319)       0:00:12.779 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 11 March 2026  23:25:55 +0000 (0:00:00.003)       0:00:12.783 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 11 March 2026  23:25:55 +0000 (0:00:00.002)       0:00:12.785 *******",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 11 March 2026  23:25:55 +0000 (0:00:00.058)       0:00:12.843 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:25:55 +0000 (0:00:00.867)       0:00:13.711 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 11 March 2026  23:25:56 +0000 (0:00:00.418)       0:00:14.130 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 11 March 2026  23:25:56 +0000 (0:00:00.087)       0:00:14.217 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:25:56 +0000 (0:00:00.353)       0:00:14.570 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:25:56 +0000 (0:00:00.113)       0:00:14.683 *******",
                                "[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-3]",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:25:57 +0000 (0:00:00.865)       0:00:15.549 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:25:57 +0000 (0:00:00.098)       0:00:15.647 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 11 March 2026  23:25:58 +0000 (0:00:00.361)       0:00:16.009 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:25:59 +0000 (0:00:01.060)       0:00:17.069 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:25:59 +0000 (0:00:00.109)       0:00:17.178 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:26:00 +0000 (0:00:01.016)       0:00:18.195 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 11 March 2026  23:26:03 +0000 (0:00:03.141)       0:00:21.337 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 11 March 2026  23:26:03 +0000 (0:00:00.069)       0:00:21.406 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 11 March 2026  23:26:03 +0000 (0:00:00.071)       0:00:21.478 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 11 March 2026  23:26:03 +0000 (0:00:00.072)       0:00:21.550 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 11 March 2026  23:26:11 +0000 (0:00:07.329)       0:00:28.880 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 11 March 2026  23:26:11 +0000 (0:00:00.751)       0:00:29.631 *******",
                                "changed: [controller-1] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-2] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-3] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-1] => (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-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-3] => (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] **********",
                                "Wednesday 11 March 2026  23:26:13 +0000 (0:00:01.460)       0:00:31.091 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:26:14 +0000 (0:00:00.847)       0:00:31.938 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:26:14 +0000 (0:00:00.007)       0:00:31.946 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:26:14 +0000 (0:00:00.004)       0:00:31.951 *******",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Wednesday 11 March 2026  23:26:14 +0000 (0:00:00.005)       0:00:31.956 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Wednesday 11 March 2026  23:26:15 +0000 (0:00:00.972)       0:00:32.929 *******",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 11 March 2026  23:26:17 +0000 (0:00:01.888)       0:00:34.818 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Wednesday 11 March 2026  23:26:17 +0000 (0:00:00.816)       0:00:35.635 *******",
                                "[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000158541'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 np0000158541'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] ***",
                                "Wednesday 11 March 2026  23:26:18 +0000 (0:00:00.671)       0:00:36.306 *******",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Wednesday 11 March 2026  23:26:18 +0000 (0:00:00.043)       0:00:36.349 *******",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Wednesday 11 March 2026  23:26:18 +0000 (0:00:00.042)       0:00:36.392 *******",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Wednesday 11 March 2026  23:26:18 +0000 (0:00:00.039)       0:00:36.432 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Wednesday 11 March 2026  23:26:18 +0000 (0:00:00.073)       0:00:36.505 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:26:18 +0000 (0:00:00.090)       0:00:36.595 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:26:19 +0000 (0:00:00.353)       0:00:36.949 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:26:19 +0000 (0:00:00.094)       0:00:37.044 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:26:21 +0000 (0:00:01.846)       0:00:38.891 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:26:21 +0000 (0:00:00.105)       0:00:38.996 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:26:21 +0000 (0:00:00.388)       0:00:39.385 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:26:21 +0000 (0:00:00.090)       0:00:39.475 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:26:23 +0000 (0:00:01.250)       0:00:40.726 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 11 March 2026  23:26:23 +0000 (0:00:00.115)       0:00:40.842 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 11 March 2026  23:26:23 +0000 (0:00:00.071)       0:00:40.914 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 11 March 2026  23:26:23 +0000 (0:00:00.077)       0:00:40.992 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 11 March 2026  23:26:23 +0000 (0:00:00.077)       0:00:41.070 *******",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 11 March 2026  23:26:24 +0000 (0:00:01.012)       0:00:42.082 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 11 March 2026  23:26:25 +0000 (0:00:01.277)       0:00:43.359 *******",
                                "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-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-1] => (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-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', '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'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Wednesday 11 March 2026  23:26:27 +0000 (0:00:01.505)       0:00:44.864 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:26:27 +0000 (0:00:00.838)       0:00:45.703 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:26:27 +0000 (0:00:00.005)       0:00:45.709 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:26:27 +0000 (0:00:00.004)       0:00:45.713 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 11 March 2026  23:26:28 +0000 (0:00:00.004)       0:00:45.718 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:26:28 +0000 (0:00:00.561)       0:00:46.279 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:26:28 +0000 (0:00:00.359)       0:00:46.638 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:26:29 +0000 (0:00:00.097)       0:00:46.736 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:26:30 +0000 (0:00:01.012)       0:00:47.748 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:26:31 +0000 (0:00:01.759)       0:00:49.508 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:26:31 +0000 (0:00:00.108)       0:00:49.617 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:26:32 +0000 (0:00:00.897)       0:00:50.514 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Wednesday 11 March 2026  23:26:34 +0000 (0:00:01.764)       0:00:52.279 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Wednesday 11 March 2026  23:26:35 +0000 (0:00:00.746)       0:00:53.025 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:26:35 +0000 (0:00:00.356)       0:00:53.382 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:26:36 +0000 (0:00:00.405)       0:00:53.787 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:26:36 +0000 (0:00:00.096)       0:00:53.884 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:26:37 +0000 (0:00:01.245)       0:00:55.130 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Wednesday 11 March 2026  23:26:40 +0000 (0:00:03.006)       0:00:58.136 *******",
                                "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] ***********",
                                "Wednesday 11 March 2026  23:26:40 +0000 (0:00:00.082)       0:00:58.219 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Wednesday 11 March 2026  23:26:41 +0000 (0:00:00.966)       0:00:59.185 *******",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Wednesday 11 March 2026  23:26:41 +0000 (0:00:00.478)       0:00:59.664 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Wednesday 11 March 2026  23:26:42 +0000 (0:00:00.720)       0:01:00.384 *******",
                                "changed: [controller-3] => (item=br_netfilter)",
                                "changed: [controller-1] => (item=br_netfilter)",
                                "changed: [controller-2] => (item=br_netfilter)",
                                "ok: [controller-3] => (item=ip_tables)",
                                "ok: [controller-2] => (item=ip_tables)",
                                "ok: [controller-1] => (item=ip_tables)",
                                "changed: [controller-3] => (item=ip6_tables)",
                                "changed: [controller-2] => (item=ip6_tables)",
                                "changed: [controller-1] => (item=ip6_tables)",
                                "changed: [controller-3] => (item=nf_conntrack)",
                                "changed: [controller-2] => (item=nf_conntrack)",
                                "changed: [controller-1] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:26:44 +0000 (0:00:01.528)       0:01:01.913 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:26:44 +0000 (0:00:00.338)       0:01:02.251 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:26:44 +0000 (0:00:00.086)       0:01:02.337 *******",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:26:46 +0000 (0:00:01.643)       0:01:03.981 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Wednesday 11 March 2026  23:26:46 +0000 (0:00:00.084)       0:01:04.065 *******",
                                "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] *************************",
                                "Wednesday 11 March 2026  23:26:46 +0000 (0:00:00.094)       0:01:04.159 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Wednesday 11 March 2026  23:26:46 +0000 (0:00:00.074)       0:01:04.234 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Wednesday 11 March 2026  23:26:49 +0000 (0:00:02.882)       0:01:07.116 *******",
                                "changed: [controller-1] => (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.ipv4.ip_forward', '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-iptables', '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.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "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': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***",
                                "Wednesday 11 March 2026  23:26:51 +0000 (0:00:02.218)       0:01:09.335 *******",
                                "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-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] ********",
                                "Wednesday 11 March 2026  23:26:52 +0000 (0:00:00.869)       0:01:10.205 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Wednesday 11 March 2026  23:26:53 +0000 (0:00:00.736)       0:01:10.941 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Wednesday 11 March 2026  23:26:53 +0000 (0:00:00.741)       0:01:11.682 *******",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Wednesday 11 March 2026  23:26:54 +0000 (0:00:00.424)       0:01:12.107 *******",
                                "[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] ***********",
                                "Wednesday 11 March 2026  23:26:54 +0000 (0:00:00.073)       0:01:12.181 *******",
                                "ok: [controller-2] => (item=swap)",
                                "ok: [controller-1] => (item=swap)",
                                "ok: [controller-3] => (item=swap)",
                                "ok: [controller-2] => (item=none)",
                                "ok: [controller-1] => (item=none)",
                                "ok: [controller-3] => (item=none)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***",
                                "Wednesday 11 March 2026  23:26:55 +0000 (0:00:00.754)       0:01:12.935 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Wednesday 11 March 2026  23:26:55 +0000 (0:00:00.710)       0:01:13.645 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 11 March 2026  23:26:56 +0000 (0:00:00.744)       0:01:14.390 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 11 March 2026  23:26:56 +0000 (0:00:00.006)       0:01:14.396 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 11 March 2026  23:26:56 +0000 (0:00:00.004)       0:01:14.401 *******",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Wednesday 11 March 2026  23:26:56 +0000 (0:00:00.004)       0:01:14.405 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Wednesday 11 March 2026  23:26:58 +0000 (0:00:01.539)       0:01:15.945 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Wednesday 11 March 2026  23:26:59 +0000 (0:00:00.805)       0:01:16.750 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Wednesday 11 March 2026  23:26:59 +0000 (0:00:00.930)       0:01:17.681 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Wednesday 11 March 2026  23:27:00 +0000 (0:00:00.899)       0:01:18.580 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Wednesday 11 March 2026  23:27:01 +0000 (0:00:00.430)       0:01:19.010 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Wednesday 11 March 2026  23:27:01 +0000 (0:00:00.680)       0:01:19.691 *******",
                                "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] **********************",
                                "Wednesday 11 March 2026  23:27:02 +0000 (0:00:00.126)       0:01:19.817 *******",
                                "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] ***",
                                "Wednesday 11 March 2026  23:27:02 +0000 (0:00:00.126)       0:01:19.944 *******",
                                "ok: [controller-1] => (item=controller-1)",
                                "ok: [controller-2 -> controller-1(199.204.45.3)] => (item=controller-1)",
                                "ok: [controller-3 -> controller-1(199.204.45.3)] => (item=controller-1)",
                                "ok: [controller-3 -> controller-2(162.253.55.195)] => (item=controller-2)",
                                "ok: [controller-2] => (item=controller-2)",
                                "ok: [controller-1 -> controller-2(162.253.55.195)] => (item=controller-2)",
                                "ok: [controller-3] => (item=controller-3)",
                                "ok: [controller-2 -> controller-3(199.204.45.242)] => (item=controller-3)",
                                "ok: [controller-1 -> controller-3(199.204.45.242)] => (item=controller-3)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Wednesday 11 March 2026  23:27:03 +0000 (0:00:00.886)       0:01:20.830 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Wednesday 11 March 2026  23:27:03 +0000 (0:00:00.064)       0:01:20.895 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Wednesday 11 March 2026  23:27:03 +0000 (0:00:00.078)       0:01:20.974 *******",
                                "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] ***",
                                "Wednesday 11 March 2026  23:27:03 +0000 (0:00:00.065)       0:01:21.040 *******",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.683)       0:01:21.723 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.074)       0:01:21.798 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.075)       0:01:21.874 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.071)       0:01:21.946 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.072)       0:01:22.018 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.071)       0:01:22.090 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.073)       0:01:22.164 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Wednesday 11 March 2026  23:27:04 +0000 (0:00:00.073)       0:01:22.237 *******",
                                "changed: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Wednesday 11 March 2026  23:27:38 +0000 (0:00:34.344)       0:01:56.582 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Wednesday 11 March 2026  23:27:39 +0000 (0:00:00.333)       0:01:56.915 *******",
                                "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] ***",
                                "Wednesday 11 March 2026  23:27:39 +0000 (0:00:00.116)       0:01:57.032 *******",
                                "ok: [controller-2 -> controller-1(199.204.45.3)]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Retrieve SHA256 certificate hash] *******",
                                "Wednesday 11 March 2026  23:27:39 +0000 (0:00:00.463)       0:01:57.496 *******",
                                "ok: [controller-2 -> controller-1(199.204.45.3)]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Generate token for joining cluster] *****",
                                "Wednesday 11 March 2026  23:27:40 +0000 (0:00:00.526)       0:01:58.022 *******",
                                "changed: [controller-2 -> controller-1(199.204.45.3)]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload kubeadm configuration] ***********",
                                "Wednesday 11 March 2026  23:27:40 +0000 (0:00:00.378)       0:01:58.401 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Wednesday 11 March 2026  23:27:41 +0000 (0:00:00.738)       0:01:59.140 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***",
                                "Wednesday 11 March 2026  23:28:59 +0000 (0:01:17.664)       0:03:16.805 *******",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***",
                                "Wednesday 11 March 2026  23:28:59 +0000 (0:00:00.485)       0:03:17.290 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******",
                                "Wednesday 11 March 2026  23:28:59 +0000 (0:00:00.352)       0:03:17.643 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************",
                                "Wednesday 11 March 2026  23:29:00 +0000 (0:00:00.350)       0:03:17.993 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***",
                                "Wednesday 11 March 2026  23:29:00 +0000 (0:00:00.098)       0:03:18.092 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************",
                                "Wednesday 11 March 2026  23:29:00 +0000 (0:00:00.077)       0:03:18.169 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***",
                                "Wednesday 11 March 2026  23:29:00 +0000 (0:00:00.083)       0:03:18.252 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***",
                                "Wednesday 11 March 2026  23:29:11 +0000 (0:00:10.610)       0:03:28.863 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************",
                                "Wednesday 11 March 2026  23:29:12 +0000 (0:00:00.996)       0:03:29.859 *******",
                                "skipping: [controller-1] => (item=DaemonSet)",
                                "skipping: [controller-1] => (item=ConfigMap)",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************",
                                "Wednesday 11 March 2026  23:29:12 +0000 (0:00:00.052)       0:03:29.911 *******",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***",
                                "Wednesday 11 March 2026  23:29:12 +0000 (0:00:00.044)       0:03:29.956 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***",
                                "Wednesday 11 March 2026  23:29:12 +0000 (0:00:00.075)       0:03:30.032 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************",
                                "Wednesday 11 March 2026  23:29:12 +0000 (0:00:00.093)       0:03:30.125 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***",
                                "Wednesday 11 March 2026  23:29:12 +0000 (0:00:00.072)       0:03:30.198 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***",
                                "Wednesday 11 March 2026  23:29:13 +0000 (0:00:01.300)       0:03:31.499 *******",
                                "changed: [controller-1]",
                                "",
                                "PLAY [Install control-plane components] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 11 March 2026  23:29:15 +0000 (0:00:01.277)       0:03:32.776 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:29:16 +0000 (0:00:01.874)       0:03:34.651 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 11 March 2026  23:29:17 +0000 (0:00:00.361)       0:03:35.012 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 11 March 2026  23:29:18 +0000 (0:00:01.036)       0:03:36.049 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:29:18 +0000 (0:00:00.340)       0:03:36.390 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:29:18 +0000 (0:00:00.062)       0:03:36.453 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:29:19 +0000 (0:00:00.763)       0:03:37.216 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************",
                                "Wednesday 11 March 2026  23:29:21 +0000 (0:00:01.889)       0:03:39.106 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************",
                                "Wednesday 11 March 2026  23:29:21 +0000 (0:00:00.431)       0:03:39.537 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************",
                                "Wednesday 11 March 2026  23:29:22 +0000 (0:00:00.332)       0:03:39.870 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***",
                                "Wednesday 11 March 2026  23:29:22 +0000 (0:00:00.385)       0:03:40.255 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***",
                                "Wednesday 11 March 2026  23:29:22 +0000 (0:00:00.335)       0:03:40.591 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install plugin] **********************************************************",
                                "Wednesday 11 March 2026  23:29:23 +0000 (0:00:00.331)       0:03:40.923 *******",
                                "included: vexxhost.containers.download_artifact for controller-1, controller-2, controller-3",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:29:23 +0000 (0:00:00.100)       0:03:41.024 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:29:23 +0000 (0:00:00.070)       0:03:41.094 *******",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:29:25 +0000 (0:00:02.117)       0:03:43.212 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 11 March 2026  23:29:27 +0000 (0:00:02.136)       0:03:45.349 *******",
                                "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] ***************",
                                "Wednesday 11 March 2026  23:29:27 +0000 (0:00:00.111)       0:03:45.460 *******",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************",
                                "Wednesday 11 March 2026  23:29:28 +0000 (0:00:00.772)       0:03:46.232 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************",
                                "Wednesday 11 March 2026  23:29:29 +0000 (0:00:00.912)       0:03:47.145 *******",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 11 March 2026  23:29:31 +0000 (0:00:02.217)       0:03:49.362 *******",
                                "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] ***************",
                                "Wednesday 11 March 2026  23:29:31 +0000 (0:00:00.070)       0:03:49.432 *******",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************",
                                "Wednesday 11 March 2026  23:29:32 +0000 (0:00:00.659)       0:03:50.092 *******",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************",
                                "Wednesday 11 March 2026  23:30:19 +0000 (0:00:47.266)       0:04:37.358 *******",
                                "changed: [controller-1]",
                                "",
                                "PLAY [Wait for all nodes to become Ready] **************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 11 March 2026  23:30:20 +0000 (0:00:00.806)       0:04:38.165 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [Wait for node to be Ready] ***********************************************",
                                "Wednesday 11 March 2026  23:30:22 +0000 (0:00:01.975)       0:04:40.140 *******",
                                "ok: [controller-2 -> controller-1(199.204.45.3)]",
                                "ok: [controller-1]",
                                "ok: [controller-3 -> controller-1(199.204.45.3)]",
                                "",
                                "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 ********************************************************************",
                                "Wednesday 11 March 2026  23:30:23 +0000 (0:00:00.821)       0:04:40.962 *******",
                                "===============================================================================",
                                "vexxhost.kubernetes.kubernetes : Join cluster -------------------------- 77.66s",
                                "vexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 47.27s",
                                "vexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 34.34s",
                                "vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems -- 10.61s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 7.33s",
                                "Install Debian packages ------------------------------------------------- 5.62s",
                                "vexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 3.43s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.14s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.01s",
                                "vexxhost.kubernetes.kubelet : Install additional packages --------------- 2.88s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.22s",
                                "vexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.22s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.14s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 2.12s",
                                "Gathering Facts --------------------------------------------------------- 1.98s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.89s",
                                "Gathering Facts --------------------------------------------------------- 1.87s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.85s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.76s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.76s",
                                "INFO     [cluster-upgrade > prepare] Executed: Successful",
                                "INFO     [cluster-upgrade > converge] Executing",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 11 March 2026  23:30:24 +0000 (0:00:00.016)       0:00:00.016 *******",
                                "[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-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-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-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Wednesday 11 March 2026  23:30:26 +0000 (0:00:02.258)       0:00:02.275 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Wednesday 11 March 2026  23:30:27 +0000 (0:00:00.446)       0:00:02.721 *******",
                                "ok: [controller-1] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-3] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-2] => (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-3] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-3] => (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] ****",
                                "Wednesday 11 March 2026  23:30:28 +0000 (0:00:01.415)       0:00:04.136 *******",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/kube-apiserver.yaml)",
                                "ok: [controller-1] => (item=/etc/kubernetes/controller-manager.conf)",
                                "ok: [controller-2] => (item=/etc/kubernetes/controller-manager.conf)",
                                "ok: [controller-3] => (item=/etc/kubernetes/controller-manager.conf)",
                                "ok: [controller-1] => (item=/etc/kubernetes/scheduler.conf)",
                                "ok: [controller-2] => (item=/etc/kubernetes/scheduler.conf)",
                                "ok: [controller-3] => (item=/etc/kubernetes/scheduler.conf)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Wednesday 11 March 2026  23:30:29 +0000 (0:00:00.933)       0:00:05.070 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Wednesday 11 March 2026  23:30:30 +0000 (0:00:00.398)       0:00:05.469 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Wednesday 11 March 2026  23:30:30 +0000 (0:00:00.308)       0:00:05.778 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Wednesday 11 March 2026  23:30:30 +0000 (0:00:00.062)       0:00:05.840 *******",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Wednesday 11 March 2026  23:30:30 +0000 (0:00:00.059)       0:00:05.900 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Wednesday 11 March 2026  23:30:31 +0000 (0:00:00.776)       0:00:06.676 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 11 March 2026  23:30:31 +0000 (0:00:00.317)       0:00:06.994 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 11 March 2026  23:30:31 +0000 (0:00:00.004)       0:00:06.998 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 11 March 2026  23:30:31 +0000 (0:00:00.002)       0:00:07.001 *******",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 11 March 2026  23:30:31 +0000 (0:00:00.054)       0:00:07.055 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:30:32 +0000 (0:00:01.008)       0:00:08.064 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 11 March 2026  23:30:33 +0000 (0:00:00.351)       0:00:08.415 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 11 March 2026  23:30:33 +0000 (0:00:00.073)       0:00:08.489 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:30:33 +0000 (0:00:00.352)       0:00:08.842 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:30:33 +0000 (0:00:00.088)       0:00:08.930 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:30:34 +0000 (0:00:00.545)       0:00:09.476 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:30:34 +0000 (0:00:00.081)       0:00:09.558 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 11 March 2026  23:30:34 +0000 (0:00:00.345)       0:00:09.904 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:30:35 +0000 (0:00:01.041)       0:00:10.946 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:30:35 +0000 (0:00:00.094)       0:00:11.040 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:30:36 +0000 (0:00:00.492)       0:00:11.533 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 11 March 2026  23:30:38 +0000 (0:00:02.328)       0:00:13.861 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 11 March 2026  23:30:38 +0000 (0:00:00.062)       0:00:13.924 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 11 March 2026  23:30:38 +0000 (0:00:00.064)       0:00:13.988 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 11 March 2026  23:30:38 +0000 (0:00:00.061)       0:00:14.049 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 11 March 2026  23:30:39 +0000 (0:00:00.888)       0:00:14.938 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 11 March 2026  23:30:40 +0000 (0:00:00.682)       0:00:15.620 *******",
                                "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] **********",
                                "Wednesday 11 March 2026  23:30:41 +0000 (0:00:01.446)       0:00:17.067 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:30:42 +0000 (0:00:00.755)       0:00:17.823 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:30:42 +0000 (0:00:00.006)       0:00:17.829 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:30:42 +0000 (0:00:00.004)       0:00:17.834 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 11 March 2026  23:30:42 +0000 (0:00:00.005)       0:00:17.839 *******",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Wednesday 11 March 2026  23:30:44 +0000 (0:00:01.703)       0:00:19.543 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.894)       0:00:20.437 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.050)       0:00:20.488 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.048)       0:00:20.536 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.052)       0:00:20.589 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.066)       0:00:20.656 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.081)       0:00:20.737 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.348)       0:00:21.086 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:30:45 +0000 (0:00:00.076)       0:00:21.162 *******",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:30:47 +0000 (0:00:01.778)       0:00:22.941 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:30:47 +0000 (0:00:00.094)       0:00:23.036 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:30:48 +0000 (0:00:00.338)       0:00:23.374 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:30:48 +0000 (0:00:00.078)       0:00:23.453 *******",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:30:49 +0000 (0:00:01.338)       0:00:24.792 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 11 March 2026  23:30:49 +0000 (0:00:00.114)       0:00:24.906 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 11 March 2026  23:30:49 +0000 (0:00:00.066)       0:00:24.973 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 11 March 2026  23:30:49 +0000 (0:00:00.061)       0:00:25.034 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 11 March 2026  23:30:49 +0000 (0:00:00.063)       0:00:25.098 *******",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 11 March 2026  23:30:50 +0000 (0:00:00.885)       0:00:25.983 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 11 March 2026  23:30:51 +0000 (0:00:00.688)       0:00:26.671 *******",
                                "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-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-2] => (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] **********",
                                "Wednesday 11 March 2026  23:30:52 +0000 (0:00:01.439)       0:00:28.111 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:30:53 +0000 (0:00:00.814)       0:00:28.925 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:30:53 +0000 (0:00:00.006)       0:00:28.931 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 11 March 2026  23:30:53 +0000 (0:00:00.004)       0:00:28.936 *******",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 11 March 2026  23:30:53 +0000 (0:00:00.005)       0:00:28.941 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:30:54 +0000 (0:00:00.570)       0:00:29.512 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:30:54 +0000 (0:00:00.349)       0:00:29.862 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:30:54 +0000 (0:00:00.095)       0:00:29.957 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:30:55 +0000 (0:00:00.461)       0:00:30.418 *******",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:30:56 +0000 (0:00:01.459)       0:00:31.877 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:30:56 +0000 (0:00:00.094)       0:00:31.972 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:30:57 +0000 (0:00:00.517)       0:00:32.489 *******",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Wednesday 11 March 2026  23:30:58 +0000 (0:00:01.420)       0:00:33.910 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Wednesday 11 March 2026  23:30:59 +0000 (0:00:00.674)       0:00:34.584 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:30:59 +0000 (0:00:00.355)       0:00:34.940 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:30:59 +0000 (0:00:00.329)       0:00:35.270 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:31:00 +0000 (0:00:00.096)       0:00:35.367 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:31:00 +0000 (0:00:00.486)       0:00:35.854 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Wednesday 11 March 2026  23:31:02 +0000 (0:00:02.348)       0:00:38.203 *******",
                                "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] ***********",
                                "Wednesday 11 March 2026  23:31:02 +0000 (0:00:00.079)       0:00:38.282 *******",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Wednesday 11 March 2026  23:31:03 +0000 (0:00:00.908)       0:00:39.190 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Wednesday 11 March 2026  23:31:04 +0000 (0:00:00.472)       0:00:39.662 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Wednesday 11 March 2026  23:31:04 +0000 (0:00:00.672)       0:00:40.335 *******",
                                "ok: [controller-1] => (item=br_netfilter)",
                                "ok: [controller-3] => (item=br_netfilter)",
                                "ok: [controller-2] => (item=br_netfilter)",
                                "ok: [controller-3] => (item=ip_tables)",
                                "ok: [controller-1] => (item=ip_tables)",
                                "ok: [controller-2] => (item=ip_tables)",
                                "ok: [controller-1] => (item=ip6_tables)",
                                "ok: [controller-3] => (item=ip6_tables)",
                                "ok: [controller-2] => (item=ip6_tables)",
                                "ok: [controller-1] => (item=nf_conntrack)",
                                "ok: [controller-3] => (item=nf_conntrack)",
                                "ok: [controller-2] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:31:06 +0000 (0:00:01.280)       0:00:41.615 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:31:06 +0000 (0:00:00.367)       0:00:41.982 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:31:06 +0000 (0:00:00.088)       0:00:42.070 *******",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:31:08 +0000 (0:00:01.316)       0:00:43.387 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Wednesday 11 March 2026  23:31:08 +0000 (0:00:00.082)       0:00:43.470 *******",
                                "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] *************************",
                                "Wednesday 11 March 2026  23:31:08 +0000 (0:00:00.083)       0:00:43.553 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Wednesday 11 March 2026  23:31:08 +0000 (0:00:00.058)       0:00:43.612 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Wednesday 11 March 2026  23:31:09 +0000 (0:00:00.890)       0:00:44.502 *******",
                                "ok: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "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.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "ok: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "ok: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "ok: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', '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-1] => (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-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "ok: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "ok: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "ok: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "ok: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "ok: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "ok: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "ok: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "ok: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "ok: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***",
                                "Wednesday 11 March 2026  23:31:11 +0000 (0:00:02.217)       0:00:46.720 *******",
                                "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-3] => (item=/etc/kubernetes)",
                                "ok: [controller-2] => (item=/etc/kubernetes)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********",
                                "Wednesday 11 March 2026  23:31:12 +0000 (0:00:00.889)       0:00:47.609 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Wednesday 11 March 2026  23:31:12 +0000 (0:00:00.688)       0:00:48.298 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Wednesday 11 March 2026  23:31:13 +0000 (0:00:00.709)       0:00:49.007 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Wednesday 11 March 2026  23:31:14 +0000 (0:00:00.422)       0:00:49.430 *******",
                                "[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] ***********",
                                "Wednesday 11 March 2026  23:31:14 +0000 (0:00:00.066)       0:00:49.496 *******",
                                "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] ***",
                                "Wednesday 11 March 2026  23:31:14 +0000 (0:00:00.775)       0:00:50.272 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Wednesday 11 March 2026  23:31:16 +0000 (0:00:01.709)       0:00:51.981 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 11 March 2026  23:31:17 +0000 (0:00:00.534)       0:00:52.516 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 11 March 2026  23:31:17 +0000 (0:00:00.007)       0:00:52.523 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 11 March 2026  23:31:17 +0000 (0:00:00.005)       0:00:52.528 *******",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Wednesday 11 March 2026  23:31:17 +0000 (0:00:00.005)       0:00:52.534 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Wednesday 11 March 2026  23:31:17 +0000 (0:00:00.535)       0:00:53.069 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Wednesday 11 March 2026  23:31:18 +0000 (0:00:01.121)       0:00:54.191 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Wednesday 11 March 2026  23:31:19 +0000 (0:00:00.946)       0:00:55.138 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Wednesday 11 March 2026  23:31:20 +0000 (0:00:00.426)       0:00:55.565 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Wednesday 11 March 2026  23:31:20 +0000 (0:00:00.517)       0:00:56.082 *******",
                                "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] **********************",
                                "Wednesday 11 March 2026  23:31:20 +0000 (0:00:00.122)       0:00:56.204 *******",
                                "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] ***",
                                "Wednesday 11 March 2026  23:31:20 +0000 (0:00:00.120)       0:00:56.325 *******",
                                "ok: [controller-2 -> controller-1(199.204.45.3)] => (item=controller-1)",
                                "ok: [controller-1] => (item=controller-1)",
                                "ok: [controller-3 -> controller-1(199.204.45.3)] => (item=controller-1)",
                                "ok: [controller-2] => (item=controller-2)",
                                "ok: [controller-1 -> controller-2(162.253.55.195)] => (item=controller-2)",
                                "ok: [controller-3 -> controller-2(162.253.55.195)] => (item=controller-2)",
                                "ok: [controller-1 -> controller-3(199.204.45.242)] => (item=controller-3)",
                                "ok: [controller-3] => (item=controller-3)",
                                "ok: [controller-2 -> controller-3(199.204.45.242)] => (item=controller-3)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Wednesday 11 March 2026  23:31:22 +0000 (0:00:01.910)       0:00:58.235 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Wednesday 11 March 2026  23:31:22 +0000 (0:00:00.081)       0:00:58.317 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Wednesday 11 March 2026  23:31:23 +0000 (0:00:00.068)       0:00:58.385 *******",
                                "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] ***",
                                "Wednesday 11 March 2026  23:31:23 +0000 (0:00:00.073)       0:00:58.459 *******",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Wednesday 11 March 2026  23:31:23 +0000 (0:00:00.781)       0:00:59.241 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Wednesday 11 March 2026  23:31:23 +0000 (0:00:00.067)       0:00:59.309 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Wednesday 11 March 2026  23:31:24 +0000 (0:00:00.067)       0:00:59.376 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Wednesday 11 March 2026  23:31:24 +0000 (0:00:00.075)       0:00:59.452 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Wednesday 11 March 2026  23:31:24 +0000 (0:00:00.068)       0:00:59.520 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Wednesday 11 March 2026  23:31:24 +0000 (0:00:00.068)       0:00:59.588 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Wednesday 11 March 2026  23:31:24 +0000 (0:00:00.069)       0:00:59.658 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Wednesday 11 March 2026  23:31:24 +0000 (0:00:00.067)       0:00:59.725 *******",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Wednesday 11 March 2026  23:31:24 +0000 (0:00:00.336)       0:01:00.062 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Wednesday 11 March 2026  23:31:25 +0000 (0:00:00.335)       0:01:00.398 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***",
                                "Wednesday 11 March 2026  23:31:25 +0000 (0:00:00.078)       0:01:00.476 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***",
                                "Wednesday 11 March 2026  23:31:25 +0000 (0:00:00.343)       0:01:00.819 *******",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******",
                                "Wednesday 11 March 2026  23:31:25 +0000 (0:00:00.345)       0:01:01.165 *******",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************",
                                "Wednesday 11 March 2026  23:31:26 +0000 (0:00:00.336)       0:01:01.501 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***",
                                "Wednesday 11 March 2026  23:31:26 +0000 (0:00:00.071)       0:01:01.573 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************",
                                "Wednesday 11 March 2026  23:31:26 +0000 (0:00:00.071)       0:01:01.644 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***",
                                "Wednesday 11 March 2026  23:31:26 +0000 (0:00:00.075)       0:01:01.719 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***",
                                "Wednesday 11 March 2026  23:31:27 +0000 (0:00:00.979)       0:01:02.699 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************",
                                "Wednesday 11 March 2026  23:31:28 +0000 (0:00:00.797)       0:01:03.496 *******",
                                "skipping: [controller-1] => (item=DaemonSet)",
                                "skipping: [controller-1] => (item=ConfigMap)",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************",
                                "Wednesday 11 March 2026  23:31:28 +0000 (0:00:00.044)       0:01:03.541 *******",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***",
                                "Wednesday 11 March 2026  23:35:02 +0000 (0:03:34.302)       0:04:37.843 *******",
                                "[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-2]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.007544\", \"end\": \"2026-03-11 23:35:02.958007\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-11 23:35:02.950463\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}",
                                "fatal: [controller-3]: FAILED! => {\"changed\": false, \"cmd\": [\"grep\", \"-q\", \"v1.34.0\", \"/etc/kubernetes/manifests/kube-apiserver.yaml\"], \"delta\": \"0:00:00.007895\", \"end\": \"2026-03-11 23:35:03.014378\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-11 23:35:03.006483\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}",
                                "ok: [controller-1]",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***",
                                "Wednesday 11 March 2026  23:35:03 +0000 (0:00:00.568)       0:04:38.412 *******",
                                "skipping: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************",
                                "Wednesday 11 March 2026  23:40:24 +0000 (0:05:21.797)       0:10:00.209 *******",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***",
                                "Wednesday 11 March 2026  23:40:24 +0000 (0:00:00.078)       0:10:00.287 *******",
                                "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:02.664362\", \"end\": \"2026-03-11 23:40:34.871054\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2026-03-11 23:40:32.206692\", \"stderr\": \"W0311 23:40:32.293827    8554 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!\\nW0311 23:40:32.701609    8554 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config147592040 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\\nerror: error execution phase kubelet-config: could not remove the CRI socket annotation from Node \\\"controller-2\\\": error patching Node \\\"controller-2\\\": Patch \\\"https://199.204.45.3:6443/api/v1/nodes/controller-2?timeout=10s\\\": unexpected EOF\\nTo see the stack trace of this error execute with --v=5 or higher\", \"stderr_lines\": [\"W0311 23:40:32.293827    8554 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!\", \"W0311 23:40:32.701609    8554 postupgrade.go:116] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config147592040 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR\", \"error: error execution phase kubelet-config: could not remove the CRI socket annotation from Node \\\"controller-2\\\": error patching Node \\\"controller-2\\\": Patch \\\"https://199.204.45.3:6443/api/v1/nodes/controller-2?timeout=10s\\\": 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-manifests2322931291\\\"\\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-config147592040/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\\\"\", \"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-manifests2322931291\\\"\", \"[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-config147592040/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\\\"\"]}",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***",
                                "Wednesday 11 March 2026  23:40:58 +0000 (0:00:33.811)       0:10:34.099 *******",
                                "changed: [controller-1]",
                                "",
                                "PLAY [Install control-plane components] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 11 March 2026  23:40:59 +0000 (0:00:01.036)       0:10:35.135 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 11 March 2026  23:41:00 +0000 (0:00:01.053)       0:10:36.189 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 11 March 2026  23:41:01 +0000 (0:00:00.346)       0:10:36.535 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 11 March 2026  23:41:02 +0000 (0:00:00.959)       0:10:37.495 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:41:02 +0000 (0:00:00.336)       0:10:37.831 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:41:02 +0000 (0:00:00.053)       0:10:37.885 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:41:02 +0000 (0:00:00.421)       0:10:38.306 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************",
                                "Wednesday 11 March 2026  23:41:05 +0000 (0:00:02.454)       0:10:40.761 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************",
                                "Wednesday 11 March 2026  23:41:05 +0000 (0:00:00.409)       0:10:41.171 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************",
                                "Wednesday 11 March 2026  23:41:06 +0000 (0:00:00.324)       0:10:41.496 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***",
                                "Wednesday 11 March 2026  23:41:06 +0000 (0:00:00.359)       0:10:41.855 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***",
                                "Wednesday 11 March 2026  23:41:06 +0000 (0:00:00.307)       0:10:42.163 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install plugin] **********************************************************",
                                "Wednesday 11 March 2026  23:41:07 +0000 (0:00:00.323)       0:10:42.486 *******",
                                "included: vexxhost.containers.download_artifact for controller-1, controller-3",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 11 March 2026  23:41:07 +0000 (0:00:00.092)       0:10:42.579 *******",
                                "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] *******************",
                                "Wednesday 11 March 2026  23:41:07 +0000 (0:00:00.066)       0:10:42.645 *******",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 11 March 2026  23:41:07 +0000 (0:00:00.441)       0:10:43.087 *******",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 11 March 2026  23:41:09 +0000 (0:00:01.658)       0:10:44.746 *******",
                                "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] ***************",
                                "Wednesday 11 March 2026  23:41:09 +0000 (0:00:00.100)       0:10:44.847 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************",
                                "Wednesday 11 March 2026  23:41:10 +0000 (0:00:00.739)       0:10:45.586 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************",
                                "Wednesday 11 March 2026  23:41:11 +0000 (0:00:00.969)       0:10:46.555 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 11 March 2026  23:41:14 +0000 (0:00:02.842)       0:10:49.398 *******",
                                "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] ***************",
                                "Wednesday 11 March 2026  23:41:14 +0000 (0:00:00.054)       0:10:49.452 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************",
                                "Wednesday 11 March 2026  23:41:14 +0000 (0:00:00.616)       0:10:50.069 *******",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************",
                                "Wednesday 11 March 2026  23:41:16 +0000 (0:00:01.858)       0:10:51.927 *******",
                                "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 ********************************************************************",
                                "Wednesday 11 March 2026  23:41:17 +0000 (0:00:00.818)       0:10:52.746 *******",
                                "===============================================================================",
                                "vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services - 321.80s",
                                "vexxhost.kubernetes.kubernetes : Start an upgrade --------------------- 214.30s",
                                "vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed) -- 33.81s",
                                "vexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.84s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.45s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.35s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.33s",
                                "Gathering Facts --------------------------------------------------------- 2.26s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.22s",
                                "vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped --- 1.91s",
                                "vexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------- 1.86s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.78s",
                                "vexxhost.kubernetes.kubelet : Create noswap systemd service config file --- 1.71s",
                                "vexxhost.containers.containerd : Enable and start service --------------- 1.70s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.66s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.46s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.45s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.44s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.42s",
                                "vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.42s",
                                "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-0375-dc86-000000000008-1-controller1"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:41:18.076990Z",
                            "start": "2026-03-11T23:25:14.483975Z"
                        },
                        "id": "0242ac17-0011-0375-dc86-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-11T23:41:22.214506Z",
                    "start": "2026-03-11T23:41:18.841230Z"
                },
                "id": "0242ac17-0011-98d9-7919-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/controller-1"
                            },
                            "changed": false
                        },
                        "controller-2": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/controller-2"
                            },
                            "changed": false
                        },
                        "controller-3": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/controller-3"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-98d9-7919-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:41:18.920166Z",
                            "start": "2026-03-11T23:41:18.852597Z"
                        },
                        "id": "0242ac17-0011-98d9-7919-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-98d9-7919-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:41:18.967043Z",
                            "start": "2026-03-11T23:41:18.924515Z"
                        },
                        "id": "0242ac17-0011-98d9-7919-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/d29727a84a3048eb896d3409f707b006/work/logs/controller-1",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/logs/controller-1",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/artifacts"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/logs/controller-2",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/logs/controller-2",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/logs/controller-3",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/logs/controller-3",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/controller-3"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/artifacts"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-98d9-7919-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:41:19.835728Z",
                            "start": "2026-03-11T23:41:18.974351Z"
                        },
                        "id": "0242ac17-0011-98d9-7919-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.204.45.3:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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.204.45.3:/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/d29727a84a3048eb896d3409f707b006/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.204.45.3:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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.204.45.3:/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/d29727a84a3048eb896d3409f707b006/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.204.45.3:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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.204.45.3:/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/d29727a84a3048eb896d3409f707b006/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@162.253.55.195:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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@162.253.55.195:/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/d29727a84a3048eb896d3409f707b006/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@162.253.55.195:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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@162.253.55.195:/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/d29727a84a3048eb896d3409f707b006/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@162.253.55.195:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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@162.253.55.195:/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/d29727a84a3048eb896d3409f707b006/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.204.45.242:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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.204.45.242:/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/d29727a84a3048eb896d3409f707b006/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.204.45.242:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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.204.45.242:/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/d29727a84a3048eb896d3409f707b006/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.204.45.242:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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.204.45.242:/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/d29727a84a3048eb896d3409f707b006/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-98d9-7919-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:41:21.510237Z",
                            "start": "2026-03-11T23:41:19.845045Z"
                        },
                        "id": "0242ac17-0011-98d9-7919-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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/artifacts/* /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.008921",
                                    "end": "2026-03-11 23:41:21.927264",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/artifacts/* /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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-11 23:41:21.918343",
                                    "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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/docs/* /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.007784",
                                    "end": "2026-03-11 23:41:22.164759",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/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/d29727a84a3048eb896d3409f707b006/work/docs/* /var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/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-11 23:41:22.156975",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-98d9-7919-000000000011",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:41:22.214506Z",
                            "start": "2026-03-11T23:41:21.527571Z"
                        },
                        "id": "0242ac17-0011-98d9-7919-000000000013",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-03-11T23:41:22.932788Z",
                    "start": "2026-03-11T23:41:22.232639Z"
                },
                "id": "0242ac17-0011-98d9-7919-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDXszOS2mt7oUjeon80Ikn1usUTFVheJhWmezu11BR5vVQKz0eXADM8qFr5HnsJRTaucJahJnEaB4UhNLnXtL6obIxEmxOZiToRUiwO3EGrTY8KvarskKnCUE8+kCO8+cxUO/JaMY3gNe64M0ekVRZBew4fvYNs7tDqVnReo4aw86+01rWnzGWow/r/frn/fDNMadrLjaYMBoHAPAOZDczeIbt44RY7iEpdjQDWCCjDji6Scd9GfJpxBrCSIK0OoJYi/PSvauAuy1t24qr0SiOMmRhxuYyfkturo9MMiXBvyHvq34RjYpNAX+eRm1H5qunYZPUdW3VtkBU9IGWuLSrZfjuwXUCWO+AHtgp8aGm7QUwBQP3wm+f8FLyTJcWV8/J5jQhFAGvVmHvzzexVFiz4QQ1j/Oy0qXqM4aeRpQzaYlSaGGbwlrnb+G54Uh98x9niFYoN1ILl+snPFN3Qh/FrmaCqgRxhffFQBhb7oxsuSWZokMrUWUSV9YJy09PaV8c= 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-98d9-7919-000000000018",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/d29727a84a3048eb896d3409f707b006/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-03-11T23:41:22.932788Z",
                            "start": "2026-03-11T23:41:22.237770Z"
                        },
                        "id": "0242ac17-0011-98d9-7919-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
}
]
