[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "vexxhost.dev/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-01-21T17:50:06.201942Z",
                    "start": "2026-01-21T17:50:03.712387Z"
                },
                "id": "0242ac17-0010-a858-5329-000000000002",
                "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-01-21",
                                    "day": "21",
                                    "epoch": "1769017804",
                                    "epoch_int": "1769017804",
                                    "hour": "17",
                                    "iso8601": "2026-01-21T17:50:04Z",
                                    "iso8601_basic": "20260121T175004591814",
                                    "iso8601_basic_short": "20260121T175004",
                                    "iso8601_micro": "2026-01-21T17:50:04.591814Z",
                                    "minute": "50",
                                    "month": "01",
                                    "second": "04",
                                    "time": "17:50:04",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Wednesday",
                                    "weekday_number": "3",
                                    "weeknumber": "03",
                                    "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/b8eab1856f064b60824b55016160d805/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work",
                                    "HOSTNAME": "3a2793d2bd32",
                                    "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/b8eab1856f064b60824b55016160d805/trusted/project_0/vexxhost.dev/zuul-config/playbooks/base",
                                    "PYTHONPATH": "/var/lib/zuul/ansible/9",
                                    "PYTHON_SHA256": "8fb5f9fbc7609fa822cb31549884575db7fd9657cbffb89510b5d7975963a83a",
                                    "PYTHON_VERSION": "3.11.13",
                                    "SSH_AGENT_PID": "1033137",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-k4F8Iu3PZtAy/agent.1033132",
                                    "TMP": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/ansible/logging.json",
                                    "ZUUL_OUTPUT_MAX_BYTES": "1073741824"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "NA",
                                "ansible_fqdn": "3a2793d2bd32",
                                "ansible_hostname": "3a2793d2bd32",
                                "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": 0.80126953125,
                                    "1m": 1.73779296875,
                                    "5m": 0.95947265625
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 2217,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 20740,
                                        "used": 11350
                                    },
                                    "real": {
                                        "free": 2217,
                                        "total": 32090,
                                        "used": 29873
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 55124584,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 208816133,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 18730012,
                                        "inode_total": 67108864,
                                        "inode_used": 48378852,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 225790296064,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 10195159,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 30406421,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16952318,
                                        "inode_total": 20643840,
                                        "inode_used": 3691522,
                                        "mount": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 41759371264,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    }
                                ],
                                "ansible_nodename": "3a2793d2bd32",
                                "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": 13,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        13,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.13",
                                "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": 32681534,
                                "ansible_user_dir": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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-01-21T17:50:04.663989Z",
                            "start": "2026-01-21T17:50:03.719814Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000002a",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:04.690628Z",
                            "start": "2026-01-21T17:50:04.668903Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000008",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "b8e/oss/b8eab1856f064b60824b55016160d805"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000054",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:04.736627Z",
                            "start": "2026-01-21T17:50:04.704525Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000056",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.15\nJob: ansible-collection-kubernetes-molecule-cluster-api\nPipeline: check\nExecutor: 3a2793d2bd32\nTriggered by: https://github.com/vexxhost/ansible-collection-kubernetes/pull/228\nEvent ID: 798a3fa0-f6f1-11f0-8cda-ecf02918b158\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:04.786318Z",
                            "start": "2026-01-21T17:50:04.744036Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000009",
                        "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\nHostname: np0000154361\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"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:04.876390Z",
                            "start": "2026-01-21T17:50:04.789981Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000000a",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:05.320608Z",
                            "start": "2026-01-21T17:50:04.882679Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000000f",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "1032d1caa79e179fcab8872ad5e038b407fdd42a",
                            "dest": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "1032d1caa79e179fcab8872ad5e038b407fdd42a",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/.ansible/tmp/ansible-tmp-1769017805.355744-84-96271330130256/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "92da917837979dd3e951a00db737fde4",
                            "mode": "0644",
                            "owner": "root",
                            "size": 17485,
                            "src": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/.ansible/tmp/ansible-tmp-1769017805.355744-84-96271330130256/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:06.201942Z",
                            "start": "2026-01-21T17:50:05.325261Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000010",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-01-21T17:50:12.969290Z",
                    "start": "2026-01-21T17:50:06.217596Z"
                },
                "id": "0242ac17-0010-a858-5329-000000000011",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "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/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:06.460323Z",
                            "start": "2026-01-21T17:50:06.228253Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000018",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:06.498198Z",
                            "start": "2026-01-21T17:50:06.465711Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000019",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.362350",
                            "end": "2026-01-21 17:50:07.313410",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_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-0010-a858-5329-00000000009c-0-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-01-21 17:50:06.951060",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa.pub\nThe key fingerprint is:\nSHA256:+uDPx0QTqmCdWv/o7DMl76ZOXDckhqR4/f6UZ3Q1K9Y zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|        .        |\n|     . + ..      |\n|    ..o.o.o..  ..|\n|    o.+ .ooo  . +|\n|   . + oS.o.oo.E.|\n|    . .oooo..+.. |\n|      o oO. o o  |\n|     . *+ *o o   |\n|      .=XB. .    |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:+uDPx0QTqmCdWv/o7DMl76ZOXDckhqR4/f6UZ3Q1K9Y zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|        .        |",
                                "|     . + ..      |",
                                "|    ..o.o.o..  ..|",
                                "|    o.+ .ooo  . +|",
                                "|   . + oS.o.oo.E.|",
                                "|    . .oooo..+.. |",
                                "|      o oO. o o  |",
                                "|     . *+ *o o   |",
                                "|      .=XB. .    |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0010-a858-5329-00000000009c-0-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:07.362288Z",
                            "start": "2026-01-21T17:50:06.526438Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000009c",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:07.399349Z",
                            "start": "2026-01-21T17:50:07.367240Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000009d",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:07.442937Z",
                            "start": "2026-01-21T17:50:07.418080Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000bc",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCxotFQhRZj0DS7Uzj9t4+WtQvmuAwQ5HObugRrAeEwqlUPQuuRGdsLQfgGaQupVOfo3sWo5NW0fFiwwLRkqYHUqSrSdbGsQ5vRoQAS0nCclbJUyQLs/2ch0mPvf0ZmbBXK6Tr+Q3hVNwahiTqfdcFgFFRVR9Z4CLyK2y1ztX4lpjEri1mdlrCH6lRmmsA1ZT/izKsVOF4uXnG/v95EhKIeSZeOZhS1ZjAm3KEyqrsFIiZO3EEzmLwrsXpZqObbkyufpZ7eAhpgJmwhyRxahZpOPws80w6BD0R2NbOxe4BPcRU4JjYjhFs9UDregeoUPnsdgA1XXECOsVZfECm+yBTdZ61qCeXtpX0EPdYvGmmzUMJem6kWxrd6AMWr2fzGbvCe2AheILvrKNvgkjNkFammWFTWysWLXTttQl+sX09g1yZn603/fJ/ywo/iZO5Pofv948gpXRJyZ88/bIwwtzqiy5gPupqsyiLaB0UN2Les1gfUTgWhsF6BA0MAmISDqEc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCxotFQhRZj0DS7Uzj9t4+WtQvmuAwQ5HObugRrAeEwqlUPQuuRGdsLQfgGaQupVOfo3sWo5NW0fFiwwLRkqYHUqSrSdbGsQ5vRoQAS0nCclbJUyQLs/2ch0mPvf0ZmbBXK6Tr+Q3hVNwahiTqfdcFgFFRVR9Z4CLyK2y1ztX4lpjEri1mdlrCH6lRmmsA1ZT/izKsVOF4uXnG/v95EhKIeSZeOZhS1ZjAm3KEyqrsFIiZO3EEzmLwrsXpZqObbkyufpZ7eAhpgJmwhyRxahZpOPws80w6BD0R2NbOxe4BPcRU4JjYjhFs9UDregeoUPnsdgA1XXECOsVZfECm+yBTdZ61qCeXtpX0EPdYvGmmzUMJem6kWxrd6AMWr2fzGbvCe2AheILvrKNvgkjNkFammWFTWysWLXTttQl+sX09g1yZn603/fJ/ywo/iZO5Pofv948gpXRJyZ88/bIwwtzqiy5gPupqsyiLaB0UN2Les1gfUTgWhsF6BA0MAmISDqEc= 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-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:07.984867Z",
                            "start": "2026-01-21T17:50:07.450453Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000bd",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:08.200509Z",
                            "start": "2026-01-21T17:50:07.989742Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000be",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "7740b18b0c55c5ceada2d22fb77c65a1a5fe2f2d",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "b8eab1856f064b60824b55016160d805_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "7740b18b0c55c5ceada2d22fb77c65a1a5fe2f2d",
                                    "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-1769017808.2519562-190-157140534194301/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "66f895c880419852ac410911638eca39",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1769017808.2519562-190-157140534194301/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:08.730969Z",
                            "start": "2026-01-21T17:50:08.204348Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000bf",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "7c0eb180c1ac50cea8955ff9090c0fb2ffc75b2a",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "b8eab1856f064b60824b55016160d805_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "7c0eb180c1ac50cea8955ff9090c0fb2ffc75b2a",
                                    "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-1769017808.7817461-200-49890920408035/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "ba4a0d15de8ae1c7d8807aad3eb4125a",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1769017808.7817461-200-49890920408035/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:09.272771Z",
                            "start": "2026-01-21T17:50:08.734761Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000c0",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:09.301700Z",
                            "start": "2026-01-21T17:50:09.276465Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000009e",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/etc/zuul/id_rsa"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-0000000000a3",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:09.695300Z",
                            "start": "2026-01-21T17:50:09.308083Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000a5",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa"
                            ],
                            "delta": "0:00:00.015502",
                            "end": "2026-01-21 17:50:09.970889",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_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-0010-a858-5329-0000000000ab-0-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-01-21 17:50:09.955387",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/b8eab1856f064b60824b55016160d805_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0010-a858-5329-0000000000ab-0-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:10.010241Z",
                            "start": "2026-01-21T17:50:09.704294Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000ab",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:10.384390Z",
                            "start": "2026-01-21T17:50:10.015319Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000ac",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:10.415303Z",
                            "start": "2026-01-21T17:50:10.389770Z"
                        },
                        "id": "0242ac17-0010-a858-5329-0000000000ad",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-a858-5329-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:10.806846Z",
                            "start": "2026-01-21T17:50:10.430387Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000001d",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-0010-a858-5329-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:11.764453Z",
                            "start": "2026-01-21T17:50:10.815007Z"
                        },
                        "id": "0242ac17-0010-a858-5329-00000000001e",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-0010-a858-5329-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:12.381751Z",
                            "start": "2026-01-21T17:50:11.773852Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000022",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-0010-a858-5329-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:12.969290Z",
                            "start": "2026-01-21T17:50:12.388264Z"
                        },
                        "id": "0242ac17-0010-a858-5329-000000000024",
                        "name": "Ensure Zuul Output directories exist"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "changed": 8,
            "failures": 0,
            "ignored": 0,
            "ok": 15,
            "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-01-21T17:50:16.535266Z",
                    "start": "2026-01-21T17:50:13.711479Z"
                },
                "id": "0242ac17-0010-4714-bd51-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "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-1769017813.7611063-5-210040548213650/uv-x86_64-unknown-linux-gnur5t3rzwm.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-1769017813.7611063-5-210040548213650/uv-x86_64-unknown-linux-gnur5t3rzwm.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-4714-bd51-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:15.996285Z",
                            "start": "2026-01-21T17:50:13.722310Z"
                        },
                        "id": "0242ac17-0010-4714-bd51-000000000007",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.008899",
                            "end": "2026-01-21 17:50:16.354045",
                            "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-0010-4714-bd51-000000000008-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-01-21 17:50:16.345146",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0010-4714-bd51-000000000008-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-4714-bd51-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:16.535266Z",
                            "start": "2026-01-21T17:50:16.018829Z"
                        },
                        "id": "0242ac17-0010-4714-bd51-000000000008",
                        "name": "Print version"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "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-01-21T17:56:29.969722Z",
                    "start": "2026-01-21T17:50:17.293524Z"
                },
                "id": "0242ac17-0010-457c-eeca-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "checksum": "1032d1caa79e179fcab8872ad5e038b407fdd42a",
                            "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": "1032d1caa79e179fcab8872ad5e038b407fdd42a",
                                    "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-1769017817.344711-5-105056822156700/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "92da917837979dd3e951a00db737fde4",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 17485,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1769017817.344711-5-105056822156700/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:18.304219Z",
                            "start": "2026-01-21T17:50:17.303306Z"
                        },
                        "id": "0242ac17-0010-457c-eeca-000000000004",
                        "name": "Copy inventory file for Zuul"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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": "1 replacements made",
                            "rc": 0
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:50:18.607314Z",
                            "start": "2026-01-21T17:50:18.310646Z"
                        },
                        "id": "0242ac17-0010-457c-eeca-000000000005",
                        "name": "Switch \"ansible_host\" to private IP"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "molecule",
                                "test",
                                "--destroy",
                                "never",
                                "-s",
                                "cluster-api"
                            ],
                            "delta": "0:06:10.658263",
                            "end": "2026-01-21 17:56:29.623916",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run molecule test --destroy never -s cluster-api",
                                    "_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-0010-457c-eeca-000000000006-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-01-21 17:50:18.965653",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.13.5 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\nDownloading ansible-core (2.3MiB)\nDownloading cryptography (4.3MiB)\nDownloading pygments (1.2MiB)\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-api > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy\nINFO     [cluster-api > prerun] Performing prerun with role_name_check=0...\nINFO     [cluster-api > dependency] Executing\nWARNING  [cluster-api > dependency] Missing roles requirements file: requirements.yml\nWARNING  [cluster-api > dependency] Missing collections requirements file: collections.yml\nWARNING  [cluster-api > dependency] Executed: 2 missing (Remove from test_sequence to suppress)\nINFO     [cluster-api > cleanup] Executing\nWARNING  [cluster-api > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-api > destroy] Executing\nWARNING  [cluster-api > destroy] Skipping, '--destroy=never' requested.\nINFO     [cluster-api > destroy] Executed: Successful\nINFO     [cluster-api > syntax] Executing\n\nplaybook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-api/converge.yml\nINFO     [cluster-api > syntax] Executed: Successful\nINFO     [cluster-api > create] Executing\nWARNING  [cluster-api > create] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-api > prepare] Executing\n\nPLAY [Prepare] *****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:50:40 +0000 (0:00:00.031)       0:00:00.031 *****\n[WARNING]: Host 'controller' 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]\n\nTASK [Install Debian packages] *************************************************\nWednesday 21 January 2026  17:50:41 +0000 (0:00:01.214)       0:00:01.246 *****\nok: [controller]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:50:46 +0000 (0:00:05.323)       0:00:06.569 *****\nok: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nWednesday 21 January 2026  17:50:47 +0000 (0:00:00.765)       0:00:07.334 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nWednesday 21 January 2026  17:50:47 +0000 (0:00:00.423)       0:00:07.758 *****\nok: [controller] => (item=/etc/keepalived/keepalived.conf)\nok: [controller] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller] => (item=/etc/kubernetes/manifests/haproxy.yaml)\n\nTASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****\nWednesday 21 January 2026  17:50:49 +0000 (0:00:01.308)       0:00:09.066 *****\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] (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] (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] (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\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nWednesday 21 January 2026  17:50:50 +0000 (0:00:00.867)       0:00:09.934 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nWednesday 21 January 2026  17:50:50 +0000 (0:00:00.375)       0:00:10.310 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nWednesday 21 January 2026  17:50:50 +0000 (0:00:00.276)       0:00:10.586 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nWednesday 21 January 2026  17:50:50 +0000 (0:00:00.033)       0:00:10.620 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nWednesday 21 January 2026  17:50:50 +0000 (0:00:00.037)       0:00:10.658 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nWednesday 21 January 2026  17:50:51 +0000 (0:00:00.874)       0:00:11.532 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 21 January 2026  17:50:51 +0000 (0:00:00.277)       0:00:11.809 *****\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:50:51 +0000 (0:00:00.050)       0:00:11.860 *****\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:50:52 +0000 (0:00:00.743)       0:00:12.603 *****\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 21 January 2026  17:50:53 +0000 (0:00:00.345)       0:00:12.948 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 21 January 2026  17:50:53 +0000 (0:00:00.032)       0:00:12.981 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:50:53 +0000 (0:00:00.301)       0:00:13.283 *****\nok: [controller] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:50:53 +0000 (0:00:00.086)       0:00:13.370 *****\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]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:50:54 +0000 (0:00:00.848)       0:00:14.219 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:50:54 +0000 (0:00:00.040)       0:00:14.259 *****\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 21 January 2026  17:50:54 +0000 (0:00:00.294)       0:00:14.553 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:50:55 +0000 (0:00:00.865)       0:00:15.418 *****\nok: [controller] => {\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 21 January 2026  17:50:55 +0000 (0:00:00.069)       0:00:15.488 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:50:56 +0000 (0:00:01.009)       0:00:16.498 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 21 January 2026  17:50:59 +0000 (0:00:03.029)       0:00:19.527 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 21 January 2026  17:50:59 +0000 (0:00:00.036)       0:00:19.563 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 21 January 2026  17:50:59 +0000 (0:00:00.026)       0:00:19.590 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 21 January 2026  17:50:59 +0000 (0:00:00.026)       0:00:19.617 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 21 January 2026  17:51:04 +0000 (0:00:04.923)       0:00:24.541 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 21 January 2026  17:51:05 +0000 (0:00:00.634)       0:00:25.175 *****\nchanged: [controller] => (item={'path': '/etc/containerd'})\nchanged: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nWednesday 21 January 2026  17:51:06 +0000 (0:00:01.332)       0:00:26.508 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 21 January 2026  17:51:07 +0000 (0:00:00.701)       0:00:27.210 *****\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nWednesday 21 January 2026  17:51:07 +0000 (0:00:00.006)       0:00:27.217 *****\nchanged: [controller]\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nWednesday 21 January 2026  17:51:08 +0000 (0:00:01.035)       0:00:28.252 *****\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 21 January 2026  17:51:09 +0000 (0:00:01.478)       0:00:29.731 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nWednesday 21 January 2026  17:51:10 +0000 (0:00:00.735)       0:00:30.467 *****\n[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000154361'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]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000154361'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 21 January 2026  17:51:11 +0000 (0:00:00.674)       0:00:31.141 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nWednesday 21 January 2026  17:51:11 +0000 (0:00:00.033)       0:00:31.175 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nWednesday 21 January 2026  17:51:11 +0000 (0:00:00.036)       0:00:31.211 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nWednesday 21 January 2026  17:51:11 +0000 (0:00:00.037)       0:00:31.248 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nWednesday 21 January 2026  17:51:11 +0000 (0:00:00.033)       0:00:31.282 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:51:11 +0000 (0:00:00.043)       0:00:31.325 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:51:11 +0000 (0:00:00.314)       0:00:31.640 *****\nok: [controller] => {\n    \"msg\": \"https://cdn.dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:51:11 +0000 (0:00:00.043)       0:00:31.684 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:51:12 +0000 (0:00:01.057)       0:00:32.742 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:51:12 +0000 (0:00:00.038)       0:00:32.780 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:51:13 +0000 (0:00:00.299)       0:00:33.080 *****\nok: [controller] => {\n    \"msg\": \"https://cdn.dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:51:13 +0000 (0:00:00.047)       0:00:33.127 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:51:14 +0000 (0:00:00.936)       0:00:34.064 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 21 January 2026  17:51:14 +0000 (0:00:00.046)       0:00:34.111 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 21 January 2026  17:51:14 +0000 (0:00:00.027)       0:00:34.139 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 21 January 2026  17:51:14 +0000 (0:00:00.032)       0:00:34.171 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 21 January 2026  17:51:14 +0000 (0:00:00.032)       0:00:34.204 *****\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 21 January 2026  17:51:15 +0000 (0:00:00.834)       0:00:35.038 *****\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 21 January 2026  17:51:15 +0000 (0:00:00.606)       0:00:35.645 *****\nok: [controller] => (item={'path': '/etc/containerd'})\nok: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nWednesday 21 January 2026  17:51:17 +0000 (0:00:01.313)       0:00:36.958 *****\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 21 January 2026  17:51:17 +0000 (0:00:00.659)       0:00:37.617 *****\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 21 January 2026  17:51:17 +0000 (0:00:00.005)       0:00:37.623 *****\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:51:18 +0000 (0:00:00.470)       0:00:38.093 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:51:18 +0000 (0:00:00.290)       0:00:38.384 *****\nok: [controller] => {\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 21 January 2026  17:51:18 +0000 (0:00:00.068)       0:00:38.452 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:51:19 +0000 (0:00:00.704)       0:00:39.157 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:51:20 +0000 (0:00:01.589)       0:00:40.746 *****\nok: [controller] => {\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 21 January 2026  17:51:20 +0000 (0:00:00.060)       0:00:40.806 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:51:21 +0000 (0:00:00.712)       0:00:41.518 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nWednesday 21 January 2026  17:51:23 +0000 (0:00:01.605)       0:00:43.124 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nWednesday 21 January 2026  17:51:23 +0000 (0:00:00.618)       0:00:43.743 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:51:24 +0000 (0:00:00.301)       0:00:44.044 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:51:24 +0000 (0:00:00.301)       0:00:44.346 *****\nok: [controller] => {\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 21 January 2026  17:51:24 +0000 (0:00:00.060)       0:00:44.407 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:51:25 +0000 (0:00:00.934)       0:00:45.342 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nWednesday 21 January 2026  17:51:28 +0000 (0:00:02.905)       0:00:48.247 *****\nok: [controller] => (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 21 January 2026  17:51:28 +0000 (0:00:00.061)       0:00:48.308 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nWednesday 21 January 2026  17:51:30 +0000 (0:00:02.466)       0:00:50.775 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nWednesday 21 January 2026  17:51:31 +0000 (0:00:00.480)       0:00:51.256 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nWednesday 21 January 2026  17:51:32 +0000 (0:00:00.677)       0:00:51.933 *****\nchanged: [controller] => (item=br_netfilter)\nok: [controller] => (item=ip_tables)\nchanged: [controller] => (item=ip6_tables)\nchanged: [controller] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:51:33 +0000 (0:00:01.436)       0:00:53.370 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:51:33 +0000 (0:00:00.286)       0:00:53.656 *****\nok: [controller] => {\n    \"msg\": \"https://cdn.dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:51:33 +0000 (0:00:00.046)       0:00:53.703 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:51:34 +0000 (0:00:00.885)       0:00:54.588 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nWednesday 21 January 2026  17:51:34 +0000 (0:00:00.029)       0:00:54.617 *****\nok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\n\nTASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************\nWednesday 21 January 2026  17:51:34 +0000 (0:00:00.057)       0:00:54.675 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nWednesday 21 January 2026  17:51:34 +0000 (0:00:00.031)       0:00:54.707 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nWednesday 21 January 2026  17:51:37 +0000 (0:00:02.485)       0:00:57.192 *****\nchanged: [controller] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\n\nTASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***\nWednesday 21 January 2026  17:51:40 +0000 (0:00:03.089)       0:01:00.282 *****\nchanged: [controller] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller] => (item=/etc/kubernetes)\nok: [controller] => (item=/etc/kubernetes/manifests)\n\nTASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********\nWednesday 21 January 2026  17:51:41 +0000 (0:00:00.778)       0:01:01.061 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nWednesday 21 January 2026  17:51:41 +0000 (0:00:00.634)       0:01:01.696 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nWednesday 21 January 2026  17:51:42 +0000 (0:00:00.617)       0:01:02.313 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nWednesday 21 January 2026  17:51:42 +0000 (0:00:00.421)       0:01:02.735 *****\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]: 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\nTASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********\nWednesday 21 January 2026  17:51:42 +0000 (0:00:00.040)       0:01:02.775 *****\nok: [controller] => (item=swap)\nok: [controller] => (item=none)\n\nTASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***\nWednesday 21 January 2026  17:51:43 +0000 (0:00:00.734)       0:01:03.509 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nWednesday 21 January 2026  17:51:44 +0000 (0:00:00.620)       0:01:04.130 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 21 January 2026  17:51:44 +0000 (0:00:00.701)       0:01:04.832 *****\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nWednesday 21 January 2026  17:51:44 +0000 (0:00:00.005)       0:01:04.838 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nWednesday 21 January 2026  17:51:46 +0000 (0:00:01.481)       0:01:06.320 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nWednesday 21 January 2026  17:51:47 +0000 (0:00:00.763)       0:01:07.083 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nWednesday 21 January 2026  17:51:48 +0000 (0:00:00.878)       0:01:07.962 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nWednesday 21 January 2026  17:51:48 +0000 (0:00:00.799)       0:01:08.761 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nWednesday 21 January 2026  17:51:49 +0000 (0:00:00.412)       0:01:09.174 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nWednesday 21 January 2026  17:51:49 +0000 (0:00:00.513)       0:01:09.688 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller\n\nTASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************\nWednesday 21 January 2026  17:51:49 +0000 (0:00:00.086)       0:01:09.774 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller\n\nTASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***\nWednesday 21 January 2026  17:51:49 +0000 (0:00:00.075)       0:01:09.850 *****\nok: [controller] => (item=controller)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nWednesday 21 January 2026  17:51:50 +0000 (0:00:00.300)       0:01:10.150 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nWednesday 21 January 2026  17:51:50 +0000 (0:00:00.041)       0:01:10.191 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nWednesday 21 January 2026  17:51:50 +0000 (0:00:00.049)       0:01:10.241 *****\nok: [controller] => {\n    \"msg\": \"controller\"\n}\n\nTASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***\nWednesday 21 January 2026  17:51:50 +0000 (0:00:00.042)       0:01:10.284 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.642)       0:01:10.926 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.028)       0:01:10.955 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.028)       0:01:10.984 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.034)       0:01:11.018 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.032)       0:01:11.050 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.032)       0:01:11.083 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.035)       0:01:11.118 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nWednesday 21 January 2026  17:51:51 +0000 (0:00:00.029)       0:01:11.148 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nWednesday 21 January 2026  17:52:25 +0000 (0:00:34.281)       0:01:45.429 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nWednesday 21 January 2026  17:52:25 +0000 (0:00:00.310)       0:01:45.739 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***\nWednesday 21 January 2026  17:52:25 +0000 (0:00:00.031)       0:01:45.770 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***\nWednesday 21 January 2026  17:52:26 +0000 (0:00:00.340)       0:01:46.111 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******\nWednesday 21 January 2026  17:52:26 +0000 (0:00:00.317)       0:01:46.428 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************\nWednesday 21 January 2026  17:52:26 +0000 (0:00:00.286)       0:01:46.715 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***\nWednesday 21 January 2026  17:52:26 +0000 (0:00:00.037)       0:01:46.752 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************\nWednesday 21 January 2026  17:52:26 +0000 (0:00:00.035)       0:01:46.787 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***\nWednesday 21 January 2026  17:52:26 +0000 (0:00:00.034)       0:01:46.822 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***\nWednesday 21 January 2026  17:52:35 +0000 (0:00:08.933)       0:01:55.755 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************\nWednesday 21 January 2026  17:52:36 +0000 (0:00:00.890)       0:01:56.646 *****\nskipping: [controller] => (item=DaemonSet)\nskipping: [controller] => (item=ConfigMap)\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************\nWednesday 21 January 2026  17:52:36 +0000 (0:00:00.038)       0:01:56.684 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***\nWednesday 21 January 2026  17:52:36 +0000 (0:00:00.034)       0:01:56.719 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***\nWednesday 21 January 2026  17:52:36 +0000 (0:00:00.036)       0:01:56.756 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************\nWednesday 21 January 2026  17:52:36 +0000 (0:00:00.045)       0:01:56.801 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***\nWednesday 21 January 2026  17:52:36 +0000 (0:00:00.034)       0:01:56.836 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***\nWednesday 21 January 2026  17:52:37 +0000 (0:00:00.516)       0:01:57.352 *****\nchanged: [controller]\n\nPLAY [Install control-plane components] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:52:38 +0000 (0:00:01.286)       0:01:58.638 *****\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 21 January 2026  17:52:39 +0000 (0:00:00.788)       0:01:59.426 *****\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 21 January 2026  17:52:39 +0000 (0:00:00.306)       0:01:59.733 *****\nok: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 21 January 2026  17:52:40 +0000 (0:00:00.908)       0:02:00.642 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:52:41 +0000 (0:00:00.298)       0:02:00.940 *****\nok: [controller] => {\n    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:52:41 +0000 (0:00:00.044)       0:02:00.984 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:52:41 +0000 (0:00:00.833)       0:02:01.818 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************\nWednesday 21 January 2026  17:52:43 +0000 (0:00:01.798)       0:02:03.616 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************\nWednesday 21 January 2026  17:52:44 +0000 (0:00:00.410)       0:02:04.027 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************\nWednesday 21 January 2026  17:52:44 +0000 (0:00:00.305)       0:02:04.333 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***\nWednesday 21 January 2026  17:52:44 +0000 (0:00:00.343)       0:02:04.676 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***\nWednesday 21 January 2026  17:52:45 +0000 (0:00:00.308)       0:02:04.984 *****\nok: [controller]\n\nTASK [Install plugin] **********************************************************\nWednesday 21 January 2026  17:52:45 +0000 (0:00:00.318)       0:02:05.303 *****\nincluded: vexxhost.containers.download_artifact for controller\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:52:45 +0000 (0:00:00.062)       0:02:05.366 *****\nok: [controller] => {\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 21 January 2026  17:52:45 +0000 (0:00:00.042)       0:02:05.408 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:52:46 +0000 (0:00:00.755)       0:02:06.164 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 21 January 2026  17:52:48 +0000 (0:00:02.107)       0:02:08.271 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nWednesday 21 January 2026  17:52:48 +0000 (0:00:00.056)       0:02:08.327 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************\nWednesday 21 January 2026  17:52:49 +0000 (0:00:00.807)       0:02:09.135 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************\nWednesday 21 January 2026  17:52:50 +0000 (0:00:00.929)       0:02:10.064 *****\nchanged: [controller]\n\nPLAY [Install older version of Cluster API] ************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:52:52 +0000 (0:00:02.698)       0:02:12.762 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 21 January 2026  17:52:53 +0000 (0:00:00.845)       0:02:13.608 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nWednesday 21 January 2026  17:52:53 +0000 (0:00:00.048)       0:02:13.656 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cert_manager : Deploy Helm chart] ********************\nWednesday 21 January 2026  17:52:54 +0000 (0:00:00.664)       0:02:14.321 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 21 January 2026  17:53:34 +0000 (0:00:40.450)       0:02:54.772 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 21 January 2026  17:53:34 +0000 (0:00:00.031)       0:02:54.804 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:53:35 +0000 (0:00:00.311)       0:02:55.116 *****\nok: [controller] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.8.4/clusterctl-linux-amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:53:35 +0000 (0:00:00.034)       0:02:55.150 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:53:36 +0000 (0:00:01.569)       0:02:56.720 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.clusterctl : Create a configuration file] ************\nWednesday 21 January 2026  17:53:36 +0000 (0:00:00.036)       0:02:56.757 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 21 January 2026  17:53:37 +0000 (0:00:00.687)       0:02:57.444 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Create build directory] ***\nWednesday 21 January 2026  17:53:37 +0000 (0:00:00.032)       0:02:57.477 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization] ***\nWednesday 21 January 2026  17:53:37 +0000 (0:00:00.032)       0:02:57.509 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Generate manifests] ***\nWednesday 21 January 2026  17:53:37 +0000 (0:00:00.026)       0:02:57.535 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster] ***\nWednesday 21 January 2026  17:53:37 +0000 (0:00:00.030)       0:02:57.566 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers] ***\nWednesday 21 January 2026  17:53:37 +0000 (0:00:00.037)       0:02:57.604 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system] ***\nWednesday 21 January 2026  17:53:37 +0000 (0:00:00.277)       0:02:57.881 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers] ***\nWednesday 21 January 2026  17:53:41 +0000 (0:00:03.126)       0:03:01.008 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Initialize the management cluster] *****\nWednesday 21 January 2026  17:53:42 +0000 (0:00:01.000)       0:03:02.009 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping] ***\nWednesday 21 January 2026  17:53:47 +0000 (0:00:05.870)       0:03:07.879 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Run upgrade if required] ***************\nWednesday 21 January 2026  17:53:48 +0000 (0:00:00.036)       0:03:07.916 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components] ***\nWednesday 21 January 2026  17:53:48 +0000 (0:00:00.040)       0:03:07.956 *****\nchanged: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})\nchanged: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})\nchanged: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})\nchanged: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})\n\nTASK [vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs] ***\nWednesday 21 January 2026  17:54:22 +0000 (0:00:34.586)       0:03:42.542 *****\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout] ****\nWednesday 21 January 2026  17:54:22 +0000 (0:00:00.070)       0:03:42.612 *****\nchanged: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=128  changed=61   unreachable=0    failed=0    skipped=44   rescued=0    ignored=3\n\n\nTASKS RECAP ********************************************************************\nWednesday 21 January 2026  17:54:28 +0000 (0:00:06.225)       0:03:48.838 *****\n===============================================================================\nvexxhost.kubernetes.cert_manager : Deploy Helm chart ------------------- 40.45s\nvexxhost.kubernetes.cluster_api : Set node selector for Cluster API components -- 34.59s\nvexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 34.28s\nvexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems --- 8.93s\nvexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout ---- 6.23s\nvexxhost.kubernetes.cluster_api : Initialize the management cluster ----- 5.87s\nInstall Debian packages ------------------------------------------------- 5.32s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 4.92s\nvexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system --- 3.13s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 3.09s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.03s\nvexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 2.96s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.91s\nvexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.70s\nvexxhost.kubernetes.kubelet : Install additional packages --------------- 2.49s\nvexxhost.containers.cni_plugins : Install additional packages ----------- 2.47s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.11s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.80s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.61s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.59s\nINFO     [cluster-api > prepare] Executed: Successful\nINFO     [cluster-api > converge] Executing\n\nPLAY [Converge] ****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:54:30 +0000 (0:00:00.017)       0:00:00.017 *****\n[WARNING]: Host 'controller' 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]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 21 January 2026  17:54:31 +0000 (0:00:01.435)       0:00:01.453 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nWednesday 21 January 2026  17:54:31 +0000 (0:00:00.081)       0:00:01.534 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cert_manager : Deploy Helm chart] ********************\nWednesday 21 January 2026  17:54:32 +0000 (0:00:00.747)       0:00:02.282 *****\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 21 January 2026  17:54:35 +0000 (0:00:03.055)       0:00:05.337 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 21 January 2026  17:54:35 +0000 (0:00:00.037)       0:00:05.374 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:54:35 +0000 (0:00:00.430)       0:00:05.805 *****\nok: [controller] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.10.5/clusterctl-linux-amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:54:35 +0000 (0:00:00.033)       0:00:05.838 *****\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:54:37 +0000 (0:00:01.732)       0:00:07.571 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.clusterctl : Create a configuration file] ************\nWednesday 21 January 2026  17:54:37 +0000 (0:00:00.037)       0:00:07.608 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 21 January 2026  17:54:38 +0000 (0:00:00.980)       0:00:08.589 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nWednesday 21 January 2026  17:54:38 +0000 (0:00:00.038)       0:00:08.627 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Create build directory] ***\nWednesday 21 January 2026  17:54:39 +0000 (0:00:00.598)       0:00:09.226 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization] ***\nWednesday 21 January 2026  17:54:39 +0000 (0:00:00.312)       0:00:09.538 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Generate manifests] ***\nWednesday 21 January 2026  17:54:40 +0000 (0:00:00.682)       0:00:10.221 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster] ***\nWednesday 21 January 2026  17:54:40 +0000 (0:00:00.710)       0:00:10.931 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers] ***\nWednesday 21 January 2026  17:54:44 +0000 (0:00:03.035)       0:00:13.966 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system] ***\nWednesday 21 January 2026  17:54:44 +0000 (0:00:00.425)       0:00:14.391 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers] ***\nWednesday 21 January 2026  17:54:46 +0000 (0:00:02.327)       0:00:16.718 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Initialize the management cluster] *****\nWednesday 21 January 2026  17:54:47 +0000 (0:00:01.211)       0:00:17.930 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping] ***\nWednesday 21 January 2026  17:54:48 +0000 (0:00:00.037)       0:00:17.968 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Run upgrade if required] ***************\nWednesday 21 January 2026  17:54:48 +0000 (0:00:00.051)       0:00:18.020 *****\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components] ***\nWednesday 21 January 2026  17:55:09 +0000 (0:00:21.642)       0:00:39.662 *****\nchanged: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})\nchanged: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})\nchanged: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})\nchanged: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})\n\nTASK [vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs] ***\nWednesday 21 January 2026  17:55:44 +0000 (0:00:34.647)       0:01:14.310 *****\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout] ****\nWednesday 21 January 2026  17:55:44 +0000 (0:00:00.085)       0:01:14.395 *****\nchanged: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=21   changed=10   unreachable=0    failed=0    skipped=4    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nWednesday 21 January 2026  17:55:50 +0000 (0:00:06.339)       0:01:20.734 *****\n===============================================================================\nvexxhost.kubernetes.cluster_api : Set node selector for Cluster API components -- 34.65s\nvexxhost.kubernetes.cluster_api : Run upgrade if required -------------- 21.64s\nvexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout ---- 6.34s\nvexxhost.kubernetes.cert_manager : Deploy Helm chart -------------------- 3.06s\nvexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster --- 3.04s\nvexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system --- 2.33s\nvexxhost.containers.download_artifact : Download item ------------------- 1.73s\nGathering Facts --------------------------------------------------------- 1.44s\nvexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers --- 1.21s\nvexxhost.kubernetes.clusterctl : Create a configuration file ------------ 0.98s\nvexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.75s\nvexxhost.kubernetes.openstack_resource_controller : Generate manifests --- 0.71s\nvexxhost.kubernetes.openstack_resource_controller : Upload Kustomization --- 0.68s\nvexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.60s\nvexxhost.containers.directory : Create directory (/var/lib/downloads) --- 0.43s\nvexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers --- 0.43s\nvexxhost.kubernetes.openstack_resource_controller : Create build directory --- 0.31s\nvexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs --- 0.09s\nvexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks --- 0.08s\nvexxhost.kubernetes.cluster_api : Parse provider resources into version mapping --- 0.05s\nINFO     [cluster-api > converge] Executed: Successful\nINFO     [cluster-api > idempotence] Executing\n\nPLAY [Converge] ****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:55:51 +0000 (0:00:00.019)       0:00:00.019 *****\n[WARNING]: Host 'controller' 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]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 21 January 2026  17:55:53 +0000 (0:00:01.331)       0:00:01.351 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nWednesday 21 January 2026  17:55:53 +0000 (0:00:00.077)       0:00:01.428 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cert_manager : Deploy Helm chart] ********************\nWednesday 21 January 2026  17:55:53 +0000 (0:00:00.736)       0:00:02.165 *****\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 21 January 2026  17:55:57 +0000 (0:00:03.134)       0:00:05.299 *****\nskipping: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 21 January 2026  17:55:57 +0000 (0:00:00.033)       0:00:05.333 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 21 January 2026  17:55:57 +0000 (0:00:00.437)       0:00:05.770 *****\nok: [controller] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.10.5/clusterctl-linux-amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 21 January 2026  17:55:57 +0000 (0:00:00.039)       0:00:05.810 *****\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 21 January 2026  17:55:58 +0000 (0:00:00.561)       0:00:06.372 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.clusterctl : Create a configuration file] ************\nWednesday 21 January 2026  17:55:58 +0000 (0:00:00.040)       0:00:06.412 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 21 January 2026  17:55:58 +0000 (0:00:00.750)       0:00:07.162 *****\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nWednesday 21 January 2026  17:55:59 +0000 (0:00:00.048)       0:00:07.211 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Create build directory] ***\nWednesday 21 January 2026  17:55:59 +0000 (0:00:00.608)       0:00:07.819 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization] ***\nWednesday 21 January 2026  17:55:59 +0000 (0:00:00.317)       0:00:08.137 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Generate manifests] ***\nWednesday 21 January 2026  17:56:00 +0000 (0:00:00.669)       0:00:08.806 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster] ***\nWednesday 21 January 2026  17:56:01 +0000 (0:00:00.688)       0:00:09.494 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers] ***\nWednesday 21 January 2026  17:56:03 +0000 (0:00:02.683)       0:00:12.178 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system] ***\nWednesday 21 January 2026  17:56:04 +0000 (0:00:00.282)       0:00:12.460 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers] ***\nWednesday 21 January 2026  17:56:06 +0000 (0:00:02.222)       0:00:14.683 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Initialize the management cluster] *****\nWednesday 21 January 2026  17:56:07 +0000 (0:00:01.157)       0:00:15.840 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping] ***\nWednesday 21 January 2026  17:56:07 +0000 (0:00:00.041)       0:00:15.881 *****\nok: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Run upgrade if required] ***************\nWednesday 21 January 2026  17:56:07 +0000 (0:00:00.055)       0:00:15.937 *****\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components] ***\nWednesday 21 January 2026  17:56:07 +0000 (0:00:00.040)       0:00:15.977 *****\nok: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})\nok: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})\nok: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})\nok: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})\n\nTASK [vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs] ***\nWednesday 21 January 2026  17:56:11 +0000 (0:00:04.113)       0:00:20.091 *****\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout] ****\nWednesday 21 January 2026  17:56:11 +0000 (0:00:00.075)       0:00:20.166 *****\nok: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=20   changed=0    unreachable=0    failed=0    skipped=5    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nWednesday 21 January 2026  17:56:13 +0000 (0:00:01.227)       0:00:21.394 *****\n===============================================================================\nvexxhost.kubernetes.cluster_api : Set node selector for Cluster API components --- 4.11s\nvexxhost.kubernetes.cert_manager : Deploy Helm chart -------------------- 3.13s\nvexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster --- 2.68s\nvexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system --- 2.22s\nGathering Facts --------------------------------------------------------- 1.33s\nvexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout ---- 1.23s\nvexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers --- 1.16s\nvexxhost.kubernetes.clusterctl : Create a configuration file ------------ 0.75s\nvexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.74s\nvexxhost.kubernetes.openstack_resource_controller : Generate manifests --- 0.69s\nvexxhost.kubernetes.openstack_resource_controller : Upload Kustomization --- 0.67s\nvexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.61s\nvexxhost.containers.download_artifact : Download item ------------------- 0.56s\nvexxhost.containers.directory : Create directory (/var/lib/downloads) --- 0.44s\nvexxhost.kubernetes.openstack_resource_controller : Create build directory --- 0.32s\nvexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers --- 0.28s\nvexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks --- 0.08s\nvexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs --- 0.08s\nvexxhost.kubernetes.cluster_api : Parse provider resources into version mapping --- 0.06s\nvexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks --- 0.05s\nINFO     [cluster-api > idempotence] Executed: Successful\nINFO     [cluster-api > side_effect] Executing\nWARNING  [cluster-api > side_effect] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-api > verify] Executing\n\nPLAY [Verify] ******************************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 21 January 2026  17:56:14 +0000 (0:00:00.009)       0:00:00.009 *****\n[WARNING]: Host 'controller' 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]\n\nTASK [Include default variables] ***********************************************\nWednesday 21 January 2026  17:56:15 +0000 (0:00:01.374)       0:00:01.384 *****\nok: [controller] => (item=clusterctl)\nok: [controller] => (item=cluster_api)\n\nTASK [Ensure the \"clusterctl\" binary is installed] *****************************\nWednesday 21 January 2026  17:56:15 +0000 (0:00:00.042)       0:00:01.426 *****\nchanged: [controller]\n\nTASK [Assert that the \"clusterctl\" binary is installed and version matches] ****\nWednesday 21 January 2026  17:56:15 +0000 (0:00:00.435)       0:00:01.862 *****\nok: [controller] => {\n    \"changed\": false,\n    \"msg\": \"All assertions passed\"\n}\n\nTASK [Ensure that the Cluster API components are ready] ************************\nWednesday 21 January 2026  17:56:16 +0000 (0:00:00.099)       0:00:01.961 *****\nok: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})\nok: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})\nok: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})\nok: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})\n\nTASK [Ensure that the Cluster API CRDs exist] **********************************\nWednesday 21 January 2026  17:56:20 +0000 (0:00:04.176)       0:00:06.138 *****\nok: [controller] => (item=clusters.cluster.x-k8s.io)\nok: [controller] => (item=openstackclusters.infrastructure.cluster.x-k8s.io)\nok: [controller] => (item=kubeadmcontrolplanes.controlplane.cluster.x-k8s.io)\nok: [controller] => (item=machinedeployments.cluster.x-k8s.io)\nok: [controller] => (item=machines.cluster.x-k8s.io)\nok: [controller] => (item=openstackmachines.infrastructure.cluster.x-k8s.io)\n\nTASK [Get a list of all Cluster API providers] *********************************\nWednesday 21 January 2026  17:56:26 +0000 (0:00:05.822)       0:00:11.960 *****\nok: [controller]\n\nTASK [Parse provider resources into version mapping] ***************************\nWednesday 21 January 2026  17:56:27 +0000 (0:00:00.997)       0:00:12.958 *****\nok: [controller]\n\nTASK [Assert that the versions are the correct ones] ***************************\nWednesday 21 January 2026  17:56:27 +0000 (0:00:00.051)       0:00:13.009 *****\nok: [controller] => {\n    \"changed\": false,\n    \"msg\": \"All assertions passed\"\n}\n\nTASK [Create a test kcptemplate] ***********************************************\nWednesday 21 January 2026  17:56:27 +0000 (0:00:00.049)       0:00:13.059 *****\nchanged: [controller]\n\nTASK [Reapply the test kcptemplate] ********************************************\nWednesday 21 January 2026  17:56:28 +0000 (0:00:01.247)       0:00:14.307 *****\nok: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=11   changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nWednesday 21 January 2026  17:56:29 +0000 (0:00:01.038)       0:00:15.346 *****\n===============================================================================\nEnsure that the Cluster API CRDs exist ---------------------------------- 5.82s\nEnsure that the Cluster API components are ready ------------------------ 4.18s\nGathering Facts --------------------------------------------------------- 1.37s\nCreate a test kcptemplate ----------------------------------------------- 1.25s\nReapply the test kcptemplate -------------------------------------------- 1.04s\nGet a list of all Cluster API providers --------------------------------- 1.00s\nEnsure the \"clusterctl\" binary is installed ----------------------------- 0.44s\nAssert that the \"clusterctl\" binary is installed and version matches ---- 0.10s\nParse provider resources into version mapping --------------------------- 0.05s\nAssert that the versions are the correct ones --------------------------- 0.05s\nInclude default variables ----------------------------------------------- 0.04s\nINFO     [cluster-api > verify] Executed: Successful\nINFO     [cluster-api > cleanup] Executing\nWARNING  [cluster-api > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-api > destroy] Executing\nWARNING  [cluster-api > destroy] Skipping, '--destroy=never' requested.\nINFO     [cluster-api > destroy] Executed: Successful\nWARNING  Molecule executed 1 scenario (1 missing files)",
                            "stdout_lines": [
                                "Using CPython 3.13.5 interpreter at: /usr/bin/python3",
                                "Creating virtual environment at: .venv",
                                "Downloading ansible-core (2.3MiB)",
                                "Downloading cryptography (4.3MiB)",
                                "Downloading pygments (1.2MiB)",
                                " 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-api > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy",
                                "INFO     [cluster-api > prerun] Performing prerun with role_name_check=0...",
                                "INFO     [cluster-api > dependency] Executing",
                                "WARNING  [cluster-api > dependency] Missing roles requirements file: requirements.yml",
                                "WARNING  [cluster-api > dependency] Missing collections requirements file: collections.yml",
                                "WARNING  [cluster-api > dependency] Executed: 2 missing (Remove from test_sequence to suppress)",
                                "INFO     [cluster-api > cleanup] Executing",
                                "WARNING  [cluster-api > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-api > destroy] Executing",
                                "WARNING  [cluster-api > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [cluster-api > destroy] Executed: Successful",
                                "INFO     [cluster-api > syntax] Executing",
                                "",
                                "playbook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-api/converge.yml",
                                "INFO     [cluster-api > syntax] Executed: Successful",
                                "INFO     [cluster-api > create] Executing",
                                "WARNING  [cluster-api > create] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-api > prepare] Executing",
                                "",
                                "PLAY [Prepare] *****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:50:40 +0000 (0:00:00.031)       0:00:00.031 *****",
                                "[WARNING]: Host 'controller' 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]",
                                "",
                                "TASK [Install Debian packages] *************************************************",
                                "Wednesday 21 January 2026  17:50:41 +0000 (0:00:01.214)       0:00:01.246 *****",
                                "ok: [controller]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:50:46 +0000 (0:00:05.323)       0:00:06.569 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Wednesday 21 January 2026  17:50:47 +0000 (0:00:00.765)       0:00:07.334 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Wednesday 21 January 2026  17:50:47 +0000 (0:00:00.423)       0:00:07.758 *****",
                                "ok: [controller] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****",
                                "Wednesday 21 January 2026  17:50:49 +0000 (0:00:01.308)       0:00:09.066 *****",
                                "[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] (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] (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] (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",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Wednesday 21 January 2026  17:50:50 +0000 (0:00:00.867)       0:00:09.934 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Wednesday 21 January 2026  17:50:50 +0000 (0:00:00.375)       0:00:10.310 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Wednesday 21 January 2026  17:50:50 +0000 (0:00:00.276)       0:00:10.586 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Wednesday 21 January 2026  17:50:50 +0000 (0:00:00.033)       0:00:10.620 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Wednesday 21 January 2026  17:50:50 +0000 (0:00:00.037)       0:00:10.658 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Wednesday 21 January 2026  17:50:51 +0000 (0:00:00.874)       0:00:11.532 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 21 January 2026  17:50:51 +0000 (0:00:00.277)       0:00:11.809 *****",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:50:51 +0000 (0:00:00.050)       0:00:11.860 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:50:52 +0000 (0:00:00.743)       0:00:12.603 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 21 January 2026  17:50:53 +0000 (0:00:00.345)       0:00:12.948 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 21 January 2026  17:50:53 +0000 (0:00:00.032)       0:00:12.981 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:50:53 +0000 (0:00:00.301)       0:00:13.283 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.0/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:50:53 +0000 (0:00:00.086)       0:00:13.370 *****",
                                "[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]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:50:54 +0000 (0:00:00.848)       0:00:14.219 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:50:54 +0000 (0:00:00.040)       0:00:14.259 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 21 January 2026  17:50:54 +0000 (0:00:00.294)       0:00:14.553 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:50:55 +0000 (0:00:00.865)       0:00:15.418 *****",
                                "ok: [controller] => {",
                                "    \"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 21 January 2026  17:50:55 +0000 (0:00:00.069)       0:00:15.488 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:50:56 +0000 (0:00:01.009)       0:00:16.498 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 21 January 2026  17:50:59 +0000 (0:00:03.029)       0:00:19.527 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 21 January 2026  17:50:59 +0000 (0:00:00.036)       0:00:19.563 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 21 January 2026  17:50:59 +0000 (0:00:00.026)       0:00:19.590 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 21 January 2026  17:50:59 +0000 (0:00:00.026)       0:00:19.617 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 21 January 2026  17:51:04 +0000 (0:00:04.923)       0:00:24.541 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 21 January 2026  17:51:05 +0000 (0:00:00.634)       0:00:25.175 *****",
                                "changed: [controller] => (item={'path': '/etc/containerd'})",
                                "changed: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Wednesday 21 January 2026  17:51:06 +0000 (0:00:01.332)       0:00:26.508 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 21 January 2026  17:51:07 +0000 (0:00:00.701)       0:00:27.210 *****",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Wednesday 21 January 2026  17:51:07 +0000 (0:00:00.006)       0:00:27.217 *****",
                                "changed: [controller]",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Wednesday 21 January 2026  17:51:08 +0000 (0:00:01.035)       0:00:28.252 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 21 January 2026  17:51:09 +0000 (0:00:01.478)       0:00:29.731 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Wednesday 21 January 2026  17:51:10 +0000 (0:00:00.735)       0:00:30.467 *****",
                                "[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000154361'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]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000154361'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 21 January 2026  17:51:11 +0000 (0:00:00.674)       0:00:31.141 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Wednesday 21 January 2026  17:51:11 +0000 (0:00:00.033)       0:00:31.175 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Wednesday 21 January 2026  17:51:11 +0000 (0:00:00.036)       0:00:31.211 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Wednesday 21 January 2026  17:51:11 +0000 (0:00:00.037)       0:00:31.248 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Wednesday 21 January 2026  17:51:11 +0000 (0:00:00.033)       0:00:31.282 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:51:11 +0000 (0:00:00.043)       0:00:31.325 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:51:11 +0000 (0:00:00.314)       0:00:31.640 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://cdn.dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:51:11 +0000 (0:00:00.043)       0:00:31.684 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:51:12 +0000 (0:00:01.057)       0:00:32.742 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:51:12 +0000 (0:00:00.038)       0:00:32.780 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:51:13 +0000 (0:00:00.299)       0:00:33.080 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://cdn.dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:51:13 +0000 (0:00:00.047)       0:00:33.127 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:51:14 +0000 (0:00:00.936)       0:00:34.064 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 21 January 2026  17:51:14 +0000 (0:00:00.046)       0:00:34.111 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 21 January 2026  17:51:14 +0000 (0:00:00.027)       0:00:34.139 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 21 January 2026  17:51:14 +0000 (0:00:00.032)       0:00:34.171 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 21 January 2026  17:51:14 +0000 (0:00:00.032)       0:00:34.204 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 21 January 2026  17:51:15 +0000 (0:00:00.834)       0:00:35.038 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 21 January 2026  17:51:15 +0000 (0:00:00.606)       0:00:35.645 *****",
                                "ok: [controller] => (item={'path': '/etc/containerd'})",
                                "ok: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Wednesday 21 January 2026  17:51:17 +0000 (0:00:01.313)       0:00:36.958 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 21 January 2026  17:51:17 +0000 (0:00:00.659)       0:00:37.617 *****",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 21 January 2026  17:51:17 +0000 (0:00:00.005)       0:00:37.623 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:51:18 +0000 (0:00:00.470)       0:00:38.093 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:51:18 +0000 (0:00:00.290)       0:00:38.384 *****",
                                "ok: [controller] => {",
                                "    \"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 21 January 2026  17:51:18 +0000 (0:00:00.068)       0:00:38.452 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:51:19 +0000 (0:00:00.704)       0:00:39.157 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:51:20 +0000 (0:00:01.589)       0:00:40.746 *****",
                                "ok: [controller] => {",
                                "    \"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 21 January 2026  17:51:20 +0000 (0:00:00.060)       0:00:40.806 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:51:21 +0000 (0:00:00.712)       0:00:41.518 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Wednesday 21 January 2026  17:51:23 +0000 (0:00:01.605)       0:00:43.124 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Wednesday 21 January 2026  17:51:23 +0000 (0:00:00.618)       0:00:43.743 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:51:24 +0000 (0:00:00.301)       0:00:44.044 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:51:24 +0000 (0:00:00.301)       0:00:44.346 *****",
                                "ok: [controller] => {",
                                "    \"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 21 January 2026  17:51:24 +0000 (0:00:00.060)       0:00:44.407 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:51:25 +0000 (0:00:00.934)       0:00:45.342 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Wednesday 21 January 2026  17:51:28 +0000 (0:00:02.905)       0:00:48.247 *****",
                                "ok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Install additional packages] ***********",
                                "Wednesday 21 January 2026  17:51:28 +0000 (0:00:00.061)       0:00:48.308 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Wednesday 21 January 2026  17:51:30 +0000 (0:00:02.466)       0:00:50.775 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Wednesday 21 January 2026  17:51:31 +0000 (0:00:00.480)       0:00:51.256 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Wednesday 21 January 2026  17:51:32 +0000 (0:00:00.677)       0:00:51.933 *****",
                                "changed: [controller] => (item=br_netfilter)",
                                "ok: [controller] => (item=ip_tables)",
                                "changed: [controller] => (item=ip6_tables)",
                                "changed: [controller] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:51:33 +0000 (0:00:01.436)       0:00:53.370 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:51:33 +0000 (0:00:00.286)       0:00:53.656 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://cdn.dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:51:33 +0000 (0:00:00.046)       0:00:53.703 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:51:34 +0000 (0:00:00.885)       0:00:54.588 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Wednesday 21 January 2026  17:51:34 +0000 (0:00:00.029)       0:00:54.617 *****",
                                "ok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************",
                                "Wednesday 21 January 2026  17:51:34 +0000 (0:00:00.057)       0:00:54.675 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Wednesday 21 January 2026  17:51:34 +0000 (0:00:00.031)       0:00:54.707 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Wednesday 21 January 2026  17:51:37 +0000 (0:00:02.485)       0:00:57.192 *****",
                                "changed: [controller] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***",
                                "Wednesday 21 January 2026  17:51:40 +0000 (0:00:03.089)       0:01:00.282 *****",
                                "changed: [controller] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller] => (item=/etc/kubernetes)",
                                "ok: [controller] => (item=/etc/kubernetes/manifests)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********",
                                "Wednesday 21 January 2026  17:51:41 +0000 (0:00:00.778)       0:01:01.061 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Wednesday 21 January 2026  17:51:41 +0000 (0:00:00.634)       0:01:01.696 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Wednesday 21 January 2026  17:51:42 +0000 (0:00:00.617)       0:01:02.313 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Wednesday 21 January 2026  17:51:42 +0000 (0:00:00.421)       0:01:02.735 *****",
                                "[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]: 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",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********",
                                "Wednesday 21 January 2026  17:51:42 +0000 (0:00:00.040)       0:01:02.775 *****",
                                "ok: [controller] => (item=swap)",
                                "ok: [controller] => (item=none)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***",
                                "Wednesday 21 January 2026  17:51:43 +0000 (0:00:00.734)       0:01:03.509 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Wednesday 21 January 2026  17:51:44 +0000 (0:00:00.620)       0:01:04.130 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 21 January 2026  17:51:44 +0000 (0:00:00.701)       0:01:04.832 *****",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Wednesday 21 January 2026  17:51:44 +0000 (0:00:00.005)       0:01:04.838 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Wednesday 21 January 2026  17:51:46 +0000 (0:00:01.481)       0:01:06.320 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Wednesday 21 January 2026  17:51:47 +0000 (0:00:00.763)       0:01:07.083 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Wednesday 21 January 2026  17:51:48 +0000 (0:00:00.878)       0:01:07.962 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Wednesday 21 January 2026  17:51:48 +0000 (0:00:00.799)       0:01:08.761 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Wednesday 21 January 2026  17:51:49 +0000 (0:00:00.412)       0:01:09.174 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Wednesday 21 January 2026  17:51:49 +0000 (0:00:00.513)       0:01:09.688 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************",
                                "Wednesday 21 January 2026  17:51:49 +0000 (0:00:00.086)       0:01:09.774 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***",
                                "Wednesday 21 January 2026  17:51:49 +0000 (0:00:00.075)       0:01:09.850 *****",
                                "ok: [controller] => (item=controller)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Wednesday 21 January 2026  17:51:50 +0000 (0:00:00.300)       0:01:10.150 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Wednesday 21 January 2026  17:51:50 +0000 (0:00:00.041)       0:01:10.191 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Wednesday 21 January 2026  17:51:50 +0000 (0:00:00.049)       0:01:10.241 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"controller\"",
                                "}",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***",
                                "Wednesday 21 January 2026  17:51:50 +0000 (0:00:00.042)       0:01:10.284 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.642)       0:01:10.926 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.028)       0:01:10.955 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.028)       0:01:10.984 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.034)       0:01:11.018 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.032)       0:01:11.050 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.032)       0:01:11.083 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.035)       0:01:11.118 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Wednesday 21 January 2026  17:51:51 +0000 (0:00:00.029)       0:01:11.148 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Wednesday 21 January 2026  17:52:25 +0000 (0:00:34.281)       0:01:45.429 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Wednesday 21 January 2026  17:52:25 +0000 (0:00:00.310)       0:01:45.739 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***",
                                "Wednesday 21 January 2026  17:52:25 +0000 (0:00:00.031)       0:01:45.770 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***",
                                "Wednesday 21 January 2026  17:52:26 +0000 (0:00:00.340)       0:01:46.111 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******",
                                "Wednesday 21 January 2026  17:52:26 +0000 (0:00:00.317)       0:01:46.428 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************",
                                "Wednesday 21 January 2026  17:52:26 +0000 (0:00:00.286)       0:01:46.715 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***",
                                "Wednesday 21 January 2026  17:52:26 +0000 (0:00:00.037)       0:01:46.752 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************",
                                "Wednesday 21 January 2026  17:52:26 +0000 (0:00:00.035)       0:01:46.787 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***",
                                "Wednesday 21 January 2026  17:52:26 +0000 (0:00:00.034)       0:01:46.822 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***",
                                "Wednesday 21 January 2026  17:52:35 +0000 (0:00:08.933)       0:01:55.755 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************",
                                "Wednesday 21 January 2026  17:52:36 +0000 (0:00:00.890)       0:01:56.646 *****",
                                "skipping: [controller] => (item=DaemonSet)",
                                "skipping: [controller] => (item=ConfigMap)",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************",
                                "Wednesday 21 January 2026  17:52:36 +0000 (0:00:00.038)       0:01:56.684 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***",
                                "Wednesday 21 January 2026  17:52:36 +0000 (0:00:00.034)       0:01:56.719 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***",
                                "Wednesday 21 January 2026  17:52:36 +0000 (0:00:00.036)       0:01:56.756 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************",
                                "Wednesday 21 January 2026  17:52:36 +0000 (0:00:00.045)       0:01:56.801 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***",
                                "Wednesday 21 January 2026  17:52:36 +0000 (0:00:00.034)       0:01:56.836 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***",
                                "Wednesday 21 January 2026  17:52:37 +0000 (0:00:00.516)       0:01:57.352 *****",
                                "changed: [controller]",
                                "",
                                "PLAY [Install control-plane components] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:52:38 +0000 (0:00:01.286)       0:01:58.638 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 21 January 2026  17:52:39 +0000 (0:00:00.788)       0:01:59.426 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 21 January 2026  17:52:39 +0000 (0:00:00.306)       0:01:59.733 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 21 January 2026  17:52:40 +0000 (0:00:00.908)       0:02:00.642 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:52:41 +0000 (0:00:00.298)       0:02:00.940 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:52:41 +0000 (0:00:00.044)       0:02:00.984 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:52:41 +0000 (0:00:00.833)       0:02:01.818 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************",
                                "Wednesday 21 January 2026  17:52:43 +0000 (0:00:01.798)       0:02:03.616 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************",
                                "Wednesday 21 January 2026  17:52:44 +0000 (0:00:00.410)       0:02:04.027 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************",
                                "Wednesday 21 January 2026  17:52:44 +0000 (0:00:00.305)       0:02:04.333 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***",
                                "Wednesday 21 January 2026  17:52:44 +0000 (0:00:00.343)       0:02:04.676 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***",
                                "Wednesday 21 January 2026  17:52:45 +0000 (0:00:00.308)       0:02:04.984 *****",
                                "ok: [controller]",
                                "",
                                "TASK [Install plugin] **********************************************************",
                                "Wednesday 21 January 2026  17:52:45 +0000 (0:00:00.318)       0:02:05.303 *****",
                                "included: vexxhost.containers.download_artifact for controller",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:52:45 +0000 (0:00:00.062)       0:02:05.366 *****",
                                "ok: [controller] => {",
                                "    \"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 21 January 2026  17:52:45 +0000 (0:00:00.042)       0:02:05.408 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:52:46 +0000 (0:00:00.755)       0:02:06.164 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 21 January 2026  17:52:48 +0000 (0:00:02.107)       0:02:08.271 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Wednesday 21 January 2026  17:52:48 +0000 (0:00:00.056)       0:02:08.327 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************",
                                "Wednesday 21 January 2026  17:52:49 +0000 (0:00:00.807)       0:02:09.135 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************",
                                "Wednesday 21 January 2026  17:52:50 +0000 (0:00:00.929)       0:02:10.064 *****",
                                "changed: [controller]",
                                "",
                                "PLAY [Install older version of Cluster API] ************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:52:52 +0000 (0:00:02.698)       0:02:12.762 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 21 January 2026  17:52:53 +0000 (0:00:00.845)       0:02:13.608 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Wednesday 21 January 2026  17:52:53 +0000 (0:00:00.048)       0:02:13.656 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cert_manager : Deploy Helm chart] ********************",
                                "Wednesday 21 January 2026  17:52:54 +0000 (0:00:00.664)       0:02:14.321 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 21 January 2026  17:53:34 +0000 (0:00:40.450)       0:02:54.772 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 21 January 2026  17:53:34 +0000 (0:00:00.031)       0:02:54.804 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:53:35 +0000 (0:00:00.311)       0:02:55.116 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.8.4/clusterctl-linux-amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:53:35 +0000 (0:00:00.034)       0:02:55.150 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:53:36 +0000 (0:00:01.569)       0:02:56.720 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.clusterctl : Create a configuration file] ************",
                                "Wednesday 21 January 2026  17:53:36 +0000 (0:00:00.036)       0:02:56.757 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 21 January 2026  17:53:37 +0000 (0:00:00.687)       0:02:57.444 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Create build directory] ***",
                                "Wednesday 21 January 2026  17:53:37 +0000 (0:00:00.032)       0:02:57.477 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization] ***",
                                "Wednesday 21 January 2026  17:53:37 +0000 (0:00:00.032)       0:02:57.509 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Generate manifests] ***",
                                "Wednesday 21 January 2026  17:53:37 +0000 (0:00:00.026)       0:02:57.535 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster] ***",
                                "Wednesday 21 January 2026  17:53:37 +0000 (0:00:00.030)       0:02:57.566 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers] ***",
                                "Wednesday 21 January 2026  17:53:37 +0000 (0:00:00.037)       0:02:57.604 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system] ***",
                                "Wednesday 21 January 2026  17:53:37 +0000 (0:00:00.277)       0:02:57.881 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers] ***",
                                "Wednesday 21 January 2026  17:53:41 +0000 (0:00:03.126)       0:03:01.008 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Initialize the management cluster] *****",
                                "Wednesday 21 January 2026  17:53:42 +0000 (0:00:01.000)       0:03:02.009 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping] ***",
                                "Wednesday 21 January 2026  17:53:47 +0000 (0:00:05.870)       0:03:07.879 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Run upgrade if required] ***************",
                                "Wednesday 21 January 2026  17:53:48 +0000 (0:00:00.036)       0:03:07.916 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components] ***",
                                "Wednesday 21 January 2026  17:53:48 +0000 (0:00:00.040)       0:03:07.956 *****",
                                "changed: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})",
                                "changed: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})",
                                "changed: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})",
                                "changed: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs] ***",
                                "Wednesday 21 January 2026  17:54:22 +0000 (0:00:34.586)       0:03:42.542 *****",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout] ****",
                                "Wednesday 21 January 2026  17:54:22 +0000 (0:00:00.070)       0:03:42.612 *****",
                                "changed: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=128  changed=61   unreachable=0    failed=0    skipped=44   rescued=0    ignored=3",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 21 January 2026  17:54:28 +0000 (0:00:06.225)       0:03:48.838 *****",
                                "===============================================================================",
                                "vexxhost.kubernetes.cert_manager : Deploy Helm chart ------------------- 40.45s",
                                "vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components -- 34.59s",
                                "vexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 34.28s",
                                "vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems --- 8.93s",
                                "vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout ---- 6.23s",
                                "vexxhost.kubernetes.cluster_api : Initialize the management cluster ----- 5.87s",
                                "Install Debian packages ------------------------------------------------- 5.32s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 4.92s",
                                "vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system --- 3.13s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 3.09s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.03s",
                                "vexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 2.96s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.91s",
                                "vexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.70s",
                                "vexxhost.kubernetes.kubelet : Install additional packages --------------- 2.49s",
                                "vexxhost.containers.cni_plugins : Install additional packages ----------- 2.47s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.11s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.80s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.61s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.59s",
                                "INFO     [cluster-api > prepare] Executed: Successful",
                                "INFO     [cluster-api > converge] Executing",
                                "",
                                "PLAY [Converge] ****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:54:30 +0000 (0:00:00.017)       0:00:00.017 *****",
                                "[WARNING]: Host 'controller' 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]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 21 January 2026  17:54:31 +0000 (0:00:01.435)       0:00:01.453 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Wednesday 21 January 2026  17:54:31 +0000 (0:00:00.081)       0:00:01.534 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cert_manager : Deploy Helm chart] ********************",
                                "Wednesday 21 January 2026  17:54:32 +0000 (0:00:00.747)       0:00:02.282 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 21 January 2026  17:54:35 +0000 (0:00:03.055)       0:00:05.337 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 21 January 2026  17:54:35 +0000 (0:00:00.037)       0:00:05.374 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:54:35 +0000 (0:00:00.430)       0:00:05.805 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.10.5/clusterctl-linux-amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:54:35 +0000 (0:00:00.033)       0:00:05.838 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:54:37 +0000 (0:00:01.732)       0:00:07.571 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.clusterctl : Create a configuration file] ************",
                                "Wednesday 21 January 2026  17:54:37 +0000 (0:00:00.037)       0:00:07.608 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 21 January 2026  17:54:38 +0000 (0:00:00.980)       0:00:08.589 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Wednesday 21 January 2026  17:54:38 +0000 (0:00:00.038)       0:00:08.627 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Create build directory] ***",
                                "Wednesday 21 January 2026  17:54:39 +0000 (0:00:00.598)       0:00:09.226 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization] ***",
                                "Wednesday 21 January 2026  17:54:39 +0000 (0:00:00.312)       0:00:09.538 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Generate manifests] ***",
                                "Wednesday 21 January 2026  17:54:40 +0000 (0:00:00.682)       0:00:10.221 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster] ***",
                                "Wednesday 21 January 2026  17:54:40 +0000 (0:00:00.710)       0:00:10.931 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers] ***",
                                "Wednesday 21 January 2026  17:54:44 +0000 (0:00:03.035)       0:00:13.966 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system] ***",
                                "Wednesday 21 January 2026  17:54:44 +0000 (0:00:00.425)       0:00:14.391 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers] ***",
                                "Wednesday 21 January 2026  17:54:46 +0000 (0:00:02.327)       0:00:16.718 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Initialize the management cluster] *****",
                                "Wednesday 21 January 2026  17:54:47 +0000 (0:00:01.211)       0:00:17.930 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping] ***",
                                "Wednesday 21 January 2026  17:54:48 +0000 (0:00:00.037)       0:00:17.968 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Run upgrade if required] ***************",
                                "Wednesday 21 January 2026  17:54:48 +0000 (0:00:00.051)       0:00:18.020 *****",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components] ***",
                                "Wednesday 21 January 2026  17:55:09 +0000 (0:00:21.642)       0:00:39.662 *****",
                                "changed: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})",
                                "changed: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})",
                                "changed: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})",
                                "changed: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs] ***",
                                "Wednesday 21 January 2026  17:55:44 +0000 (0:00:34.647)       0:01:14.310 *****",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout] ****",
                                "Wednesday 21 January 2026  17:55:44 +0000 (0:00:00.085)       0:01:14.395 *****",
                                "changed: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=21   changed=10   unreachable=0    failed=0    skipped=4    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 21 January 2026  17:55:50 +0000 (0:00:06.339)       0:01:20.734 *****",
                                "===============================================================================",
                                "vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components -- 34.65s",
                                "vexxhost.kubernetes.cluster_api : Run upgrade if required -------------- 21.64s",
                                "vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout ---- 6.34s",
                                "vexxhost.kubernetes.cert_manager : Deploy Helm chart -------------------- 3.06s",
                                "vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster --- 3.04s",
                                "vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system --- 2.33s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.73s",
                                "Gathering Facts --------------------------------------------------------- 1.44s",
                                "vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers --- 1.21s",
                                "vexxhost.kubernetes.clusterctl : Create a configuration file ------------ 0.98s",
                                "vexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.75s",
                                "vexxhost.kubernetes.openstack_resource_controller : Generate manifests --- 0.71s",
                                "vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization --- 0.68s",
                                "vexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.60s",
                                "vexxhost.containers.directory : Create directory (/var/lib/downloads) --- 0.43s",
                                "vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers --- 0.43s",
                                "vexxhost.kubernetes.openstack_resource_controller : Create build directory --- 0.31s",
                                "vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs --- 0.09s",
                                "vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks --- 0.08s",
                                "vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping --- 0.05s",
                                "INFO     [cluster-api > converge] Executed: Successful",
                                "INFO     [cluster-api > idempotence] Executing",
                                "",
                                "PLAY [Converge] ****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:55:51 +0000 (0:00:00.019)       0:00:00.019 *****",
                                "[WARNING]: Host 'controller' 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]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 21 January 2026  17:55:53 +0000 (0:00:01.331)       0:00:01.351 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Wednesday 21 January 2026  17:55:53 +0000 (0:00:00.077)       0:00:01.428 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cert_manager : Deploy Helm chart] ********************",
                                "Wednesday 21 January 2026  17:55:53 +0000 (0:00:00.736)       0:00:02.165 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 21 January 2026  17:55:57 +0000 (0:00:03.134)       0:00:05.299 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 21 January 2026  17:55:57 +0000 (0:00:00.033)       0:00:05.333 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 21 January 2026  17:55:57 +0000 (0:00:00.437)       0:00:05.770 *****",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.10.5/clusterctl-linux-amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 21 January 2026  17:55:57 +0000 (0:00:00.039)       0:00:05.810 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 21 January 2026  17:55:58 +0000 (0:00:00.561)       0:00:06.372 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.clusterctl : Create a configuration file] ************",
                                "Wednesday 21 January 2026  17:55:58 +0000 (0:00:00.040)       0:00:06.412 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 21 January 2026  17:55:58 +0000 (0:00:00.750)       0:00:07.162 *****",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Wednesday 21 January 2026  17:55:59 +0000 (0:00:00.048)       0:00:07.211 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Create build directory] ***",
                                "Wednesday 21 January 2026  17:55:59 +0000 (0:00:00.608)       0:00:07.819 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization] ***",
                                "Wednesday 21 January 2026  17:55:59 +0000 (0:00:00.317)       0:00:08.137 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Generate manifests] ***",
                                "Wednesday 21 January 2026  17:56:00 +0000 (0:00:00.669)       0:00:08.806 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster] ***",
                                "Wednesday 21 January 2026  17:56:01 +0000 (0:00:00.688)       0:00:09.494 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers] ***",
                                "Wednesday 21 January 2026  17:56:03 +0000 (0:00:02.683)       0:00:12.178 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system] ***",
                                "Wednesday 21 January 2026  17:56:04 +0000 (0:00:00.282)       0:00:12.460 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers] ***",
                                "Wednesday 21 January 2026  17:56:06 +0000 (0:00:02.222)       0:00:14.683 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Initialize the management cluster] *****",
                                "Wednesday 21 January 2026  17:56:07 +0000 (0:00:01.157)       0:00:15.840 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping] ***",
                                "Wednesday 21 January 2026  17:56:07 +0000 (0:00:00.041)       0:00:15.881 *****",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Run upgrade if required] ***************",
                                "Wednesday 21 January 2026  17:56:07 +0000 (0:00:00.055)       0:00:15.937 *****",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components] ***",
                                "Wednesday 21 January 2026  17:56:07 +0000 (0:00:00.040)       0:00:15.977 *****",
                                "ok: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})",
                                "ok: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})",
                                "ok: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})",
                                "ok: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs] ***",
                                "Wednesday 21 January 2026  17:56:11 +0000 (0:00:04.113)       0:00:20.091 *****",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanetemplates.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/1/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigs.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmconfigtemplates.bootstrap.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/template/properties/spec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/initConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller] => (item={'crd': 'kubeadmcontrolplanes.controlplane.cluster.x-k8s.io', 'path': '/spec/versions/2/schema/openAPIV3Schema/properties/spec/properties/kubeadmConfigSpec/properties/joinConfiguration/properties/nodeRegistration/properties/imagePullPolicy/default'})",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout] ****",
                                "Wednesday 21 January 2026  17:56:11 +0000 (0:00:00.075)       0:00:20.166 *****",
                                "ok: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=20   changed=0    unreachable=0    failed=0    skipped=5    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 21 January 2026  17:56:13 +0000 (0:00:01.227)       0:00:21.394 *****",
                                "===============================================================================",
                                "vexxhost.kubernetes.cluster_api : Set node selector for Cluster API components --- 4.11s",
                                "vexxhost.kubernetes.cert_manager : Deploy Helm chart -------------------- 3.13s",
                                "vexxhost.kubernetes.openstack_resource_controller : Apply manifest to cluster --- 2.68s",
                                "vexxhost.kubernetes.cluster_api : Copy over all provider configuration to the remote system --- 2.22s",
                                "Gathering Facts --------------------------------------------------------- 1.33s",
                                "vexxhost.kubernetes.cluster_api : Set CAPO instance creation timeout ---- 1.23s",
                                "vexxhost.kubernetes.cluster_api : Get a list of all Cluster API providers --- 1.16s",
                                "vexxhost.kubernetes.clusterctl : Create a configuration file ------------ 0.75s",
                                "vexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.74s",
                                "vexxhost.kubernetes.openstack_resource_controller : Generate manifests --- 0.69s",
                                "vexxhost.kubernetes.openstack_resource_controller : Upload Kustomization --- 0.67s",
                                "vexxhost.kubernetes.upload_helm_chart : Upload Helm chart --------------- 0.61s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 0.56s",
                                "vexxhost.containers.directory : Create directory (/var/lib/downloads) --- 0.44s",
                                "vexxhost.kubernetes.openstack_resource_controller : Create build directory --- 0.32s",
                                "vexxhost.kubernetes.cluster_api : Create a folder for the Cluster API providers --- 0.28s",
                                "vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks --- 0.08s",
                                "vexxhost.kubernetes.cluster_api : Set default values for imagePullPolicy in kubeadmConfigSpec of CRDs --- 0.08s",
                                "vexxhost.kubernetes.cluster_api : Parse provider resources into version mapping --- 0.06s",
                                "vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks --- 0.05s",
                                "INFO     [cluster-api > idempotence] Executed: Successful",
                                "INFO     [cluster-api > side_effect] Executing",
                                "WARNING  [cluster-api > side_effect] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-api > verify] Executing",
                                "",
                                "PLAY [Verify] ******************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 21 January 2026  17:56:14 +0000 (0:00:00.009)       0:00:00.009 *****",
                                "[WARNING]: Host 'controller' 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]",
                                "",
                                "TASK [Include default variables] ***********************************************",
                                "Wednesday 21 January 2026  17:56:15 +0000 (0:00:01.374)       0:00:01.384 *****",
                                "ok: [controller] => (item=clusterctl)",
                                "ok: [controller] => (item=cluster_api)",
                                "",
                                "TASK [Ensure the \"clusterctl\" binary is installed] *****************************",
                                "Wednesday 21 January 2026  17:56:15 +0000 (0:00:00.042)       0:00:01.426 *****",
                                "changed: [controller]",
                                "",
                                "TASK [Assert that the \"clusterctl\" binary is installed and version matches] ****",
                                "Wednesday 21 January 2026  17:56:15 +0000 (0:00:00.435)       0:00:01.862 *****",
                                "ok: [controller] => {",
                                "    \"changed\": false,",
                                "    \"msg\": \"All assertions passed\"",
                                "}",
                                "",
                                "TASK [Ensure that the Cluster API components are ready] ************************",
                                "Wednesday 21 January 2026  17:56:16 +0000 (0:00:00.099)       0:00:01.961 *****",
                                "ok: [controller] => (item={'namespace': 'capi-kubeadm-bootstrap-system', 'name': 'capi-kubeadm-bootstrap-controller-manager'})",
                                "ok: [controller] => (item={'namespace': 'capi-kubeadm-control-plane-system', 'name': 'capi-kubeadm-control-plane-controller-manager'})",
                                "ok: [controller] => (item={'namespace': 'capi-system', 'name': 'capi-controller-manager'})",
                                "ok: [controller] => (item={'namespace': 'capo-system', 'name': 'capo-controller-manager'})",
                                "",
                                "TASK [Ensure that the Cluster API CRDs exist] **********************************",
                                "Wednesday 21 January 2026  17:56:20 +0000 (0:00:04.176)       0:00:06.138 *****",
                                "ok: [controller] => (item=clusters.cluster.x-k8s.io)",
                                "ok: [controller] => (item=openstackclusters.infrastructure.cluster.x-k8s.io)",
                                "ok: [controller] => (item=kubeadmcontrolplanes.controlplane.cluster.x-k8s.io)",
                                "ok: [controller] => (item=machinedeployments.cluster.x-k8s.io)",
                                "ok: [controller] => (item=machines.cluster.x-k8s.io)",
                                "ok: [controller] => (item=openstackmachines.infrastructure.cluster.x-k8s.io)",
                                "",
                                "TASK [Get a list of all Cluster API providers] *********************************",
                                "Wednesday 21 January 2026  17:56:26 +0000 (0:00:05.822)       0:00:11.960 *****",
                                "ok: [controller]",
                                "",
                                "TASK [Parse provider resources into version mapping] ***************************",
                                "Wednesday 21 January 2026  17:56:27 +0000 (0:00:00.997)       0:00:12.958 *****",
                                "ok: [controller]",
                                "",
                                "TASK [Assert that the versions are the correct ones] ***************************",
                                "Wednesday 21 January 2026  17:56:27 +0000 (0:00:00.051)       0:00:13.009 *****",
                                "ok: [controller] => {",
                                "    \"changed\": false,",
                                "    \"msg\": \"All assertions passed\"",
                                "}",
                                "",
                                "TASK [Create a test kcptemplate] ***********************************************",
                                "Wednesday 21 January 2026  17:56:27 +0000 (0:00:00.049)       0:00:13.059 *****",
                                "changed: [controller]",
                                "",
                                "TASK [Reapply the test kcptemplate] ********************************************",
                                "Wednesday 21 January 2026  17:56:28 +0000 (0:00:01.247)       0:00:14.307 *****",
                                "ok: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=11   changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 21 January 2026  17:56:29 +0000 (0:00:01.038)       0:00:15.346 *****",
                                "===============================================================================",
                                "Ensure that the Cluster API CRDs exist ---------------------------------- 5.82s",
                                "Ensure that the Cluster API components are ready ------------------------ 4.18s",
                                "Gathering Facts --------------------------------------------------------- 1.37s",
                                "Create a test kcptemplate ----------------------------------------------- 1.25s",
                                "Reapply the test kcptemplate -------------------------------------------- 1.04s",
                                "Get a list of all Cluster API providers --------------------------------- 1.00s",
                                "Ensure the \"clusterctl\" binary is installed ----------------------------- 0.44s",
                                "Assert that the \"clusterctl\" binary is installed and version matches ---- 0.10s",
                                "Parse provider resources into version mapping --------------------------- 0.05s",
                                "Assert that the versions are the correct ones --------------------------- 0.05s",
                                "Include default variables ----------------------------------------------- 0.04s",
                                "INFO     [cluster-api > verify] Executed: Successful",
                                "INFO     [cluster-api > cleanup] Executing",
                                "WARNING  [cluster-api > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-api > destroy] Executing",
                                "WARNING  [cluster-api > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [cluster-api > destroy] Executed: Successful",
                                "WARNING  Molecule executed 1 scenario (1 missing files)"
                            ],
                            "zuul_log_id": "0242ac17-0010-457c-eeca-000000000006-1-controller"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:56:29.969722Z",
                            "start": "2026-01-21T17:50:18.626175Z"
                        },
                        "id": "0242ac17-0010-457c-eeca-000000000006",
                        "name": "Run Molecule scenario"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 3,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "post",
    "playbook": "vexxhost.dev/zuul-config/playbooks/base/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-01-21T17:56:33.963887Z",
                    "start": "2026-01-21T17:56:30.666744Z"
                },
                "id": "0242ac17-0010-b40a-6b1f-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-b40a-6b1f-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:56:30.722356Z",
                            "start": "2026-01-21T17:56:30.677129Z"
                        },
                        "id": "0242ac17-0010-b40a-6b1f-000000000008",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-b40a-6b1f-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:56:30.771153Z",
                            "start": "2026-01-21T17:56:30.729423Z"
                        },
                        "id": "0242ac17-0010-b40a-6b1f-000000000009",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs"
                                        }
                                    },
                                    "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/b8eab1856f064b60824b55016160d805/work/logs",
                                            "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/b8eab1856f064b60824b55016160d805/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-b40a-6b1f-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:56:31.605975Z",
                            "start": "2026-01-21T17:56:30.777027Z"
                        },
                        "id": "0242ac17-0010-b40a-6b1f-00000000000a",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "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/logs/ /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs/",
                                    "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/b8eab1856f064b60824b55016160d805/work/logs/",
                                            "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": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs",
                                        "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@162.253.55.195:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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@162.253.55.195:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-b40a-6b1f-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:56:33.241814Z",
                            "start": "2026-01-21T17:56:31.617921Z"
                        },
                        "id": "0242ac17-0010-b40a-6b1f-00000000000c",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/artifacts/* /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.008449",
                                    "end": "2026-01-21 17:56:33.660773",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/artifacts/* /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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-01-21 17:56:33.652324",
                                    "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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/docs/* /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.009285",
                                    "end": "2026-01-21 17:56:33.912111",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/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/b8eab1856f064b60824b55016160d805/work/docs/* /var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/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-01-21 17:56:33.902826",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-b40a-6b1f-00000000000f",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:56:33.963887Z",
                            "start": "2026-01-21T17:56:33.253272Z"
                        },
                        "id": "0242ac17-0010-b40a-6b1f-000000000011",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-01-21T17:56:34.441683Z",
                    "start": "2026-01-21T17:56:33.975982Z"
                },
                "id": "0242ac17-0010-b40a-6b1f-000000000013",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCxotFQhRZj0DS7Uzj9t4+WtQvmuAwQ5HObugRrAeEwqlUPQuuRGdsLQfgGaQupVOfo3sWo5NW0fFiwwLRkqYHUqSrSdbGsQ5vRoQAS0nCclbJUyQLs/2ch0mPvf0ZmbBXK6Tr+Q3hVNwahiTqfdcFgFFRVR9Z4CLyK2y1ztX4lpjEri1mdlrCH6lRmmsA1ZT/izKsVOF4uXnG/v95EhKIeSZeOZhS1ZjAm3KEyqrsFIiZO3EEzmLwrsXpZqObbkyufpZ7eAhpgJmwhyRxahZpOPws80w6BD0R2NbOxe4BPcRU4JjYjhFs9UDregeoUPnsdgA1XXECOsVZfECm+yBTdZ61qCeXtpX0EPdYvGmmzUMJem6kWxrd6AMWr2fzGbvCe2AheILvrKNvgkjNkFammWFTWysWLXTttQl+sX09g1yZn603/fJ/ywo/iZO5Pofv948gpXRJyZ88/bIwwtzqiy5gPupqsyiLaB0UN2Les1gfUTgWhsF6BA0MAmISDqEc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCxotFQhRZj0DS7Uzj9t4+WtQvmuAwQ5HObugRrAeEwqlUPQuuRGdsLQfgGaQupVOfo3sWo5NW0fFiwwLRkqYHUqSrSdbGsQ5vRoQAS0nCclbJUyQLs/2ch0mPvf0ZmbBXK6Tr+Q3hVNwahiTqfdcFgFFRVR9Z4CLyK2y1ztX4lpjEri1mdlrCH6lRmmsA1ZT/izKsVOF4uXnG/v95EhKIeSZeOZhS1ZjAm3KEyqrsFIiZO3EEzmLwrsXpZqObbkyufpZ7eAhpgJmwhyRxahZpOPws80w6BD0R2NbOxe4BPcRU4JjYjhFs9UDregeoUPnsdgA1XXECOsVZfECm+yBTdZ61qCeXtpX0EPdYvGmmzUMJem6kWxrd6AMWr2fzGbvCe2AheILvrKNvgkjNkFammWFTWysWLXTttQl+sX09g1yZn603/fJ/ywo/iZO5Pofv948gpXRJyZ88/bIwwtzqiy5gPupqsyiLaB0UN2Les1gfUTgWhsF6BA0MAmISDqEc= 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-0010-b40a-6b1f-000000000016",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/b8eab1856f064b60824b55016160d805/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-01-21T17:56:34.441683Z",
                            "start": "2026-01-21T17:56:33.981279Z"
                        },
                        "id": "0242ac17-0010-b40a-6b1f-000000000018",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "changed": 4,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
