[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-05-20T13:45:53.811118Z",
                    "start": "2026-05-20T13:45:51.583921Z"
                },
                "id": "0242ac17-0010-d9b4-de08-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-05-20",
                                    "day": "20",
                                    "epoch": "1779284752",
                                    "epoch_int": "1779284752",
                                    "hour": "13",
                                    "iso8601": "2026-05-20T13:45:52Z",
                                    "iso8601_basic": "20260520T134552386286",
                                    "iso8601_basic_short": "20260520T134552",
                                    "iso8601_micro": "2026-05-20T13:45:52.386286Z",
                                    "minute": "45",
                                    "month": "05",
                                    "second": "52",
                                    "time": "13:45:52",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Wednesday",
                                    "weekday_number": "3",
                                    "weeknumber": "20",
                                    "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/3a284d01350c4e47863191c38387b0c3/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work",
                                    "HOSTNAME": "2d72f0692154",
                                    "KUBECONFIG": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/kube/config",
                                    "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/3a284d01350c4e47863191c38387b0c3/trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base",
                                    "PYTHONPATH": "/var/lib/zuul/ansible/9",
                                    "PYTHON_SHA256": "8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78",
                                    "PYTHON_VERSION": "3.11.14",
                                    "SSH_AGENT_PID": "1552612",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-XcVFvrXQJQZw/agent.1552611",
                                    "TMP": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/ansible/logging.json",
                                    "ZUUL_OUTPUT_MAX_BYTES": "1073741824"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "NA",
                                "ansible_fqdn": "2d72f0692154",
                                "ansible_hostname": "2d72f0692154",
                                "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": 2.5029296875,
                                    "1m": 2.080078125,
                                    "5m": 2.32470703125
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 5783,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 16848,
                                        "used": 15242
                                    },
                                    "real": {
                                        "free": 5783,
                                        "total": 32090,
                                        "used": 26307
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/kube",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 141990969,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 121949748,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 47872781,
                                        "inode_total": 67108864,
                                        "inode_used": 19236083,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 581595009024,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8607092,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31994488,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16558628,
                                        "inode_total": 20643840,
                                        "inode_used": 4085212,
                                        "mount": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35254648832,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    }
                                ],
                                "ansible_nodename": "2d72f0692154",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": [
                                        "tty1",
                                        "ttyS0"
                                    ],
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_processor": [
                                    "0",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "1",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "2",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "3",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "4",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "5",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "6",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "7",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "8",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "9",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "10",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "11",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "12",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "13",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "14",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "15",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 16,
                                "ansible_processor_nproc": 16,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 16,
                                "ansible_product_name": "NA",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "NA",
                                "ansible_python": {
                                    "executable": "/usr/local/lib/zuul/ansible/9/bin/python",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 14,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        14,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.14",
                                "ansible_real_group_id": 0,
                                "ansible_real_user_id": 0,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "bwrap",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": "N/A",
                                "ansible_system_capabilities_enforced": "N/A",
                                "ansible_system_vendor": "NA",
                                "ansible_uptime_seconds": 42948481,
                                "ansible_user_dir": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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-05-20T13:45:52.450620Z",
                            "start": "2026-05-20T13:45:51.591012Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-00000000002a",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:52.473393Z",
                            "start": "2026-05-20T13:45:52.455612Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-000000000008",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "3a2/oss/3a284d01350c4e47863191c38387b0c3"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000054",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:52.515513Z",
                            "start": "2026-05-20T13:45:52.484448Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-000000000056",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.18\nJob: atmosphere-common-molecule-secretgen-controller\nPipeline: check\nExecutor: 2d72f0692154\nTriggered by: https://github.com/vexxhost/atmosphere.common/pull/111\nEvent ID: 17651cf0-5452-11f1-8e1d-0dde0b93bb8c\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:52.555580Z",
                            "start": "2026-05-20T13:45:52.523504Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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: np0000175374\nUsername: zuul\nDistro: Ubuntu 24.04\nProvider: yul1\nRegion: ca-ymq-1\nLabel: ubuntu-noble\nProduct Name: OpenStack Nova\nInterface IP: 199.204.45.44\n",
                                    "zj_item": "controller"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:52.656370Z",
                            "start": "2026-05-20T13:45:52.559337Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-00000000000a",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:53.029160Z",
                            "start": "2026-05-20T13:45:52.667794Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-00000000000f",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "dba52c00a99200d53a3c058b69cc8e001be5229b",
                            "dest": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "dba52c00a99200d53a3c058b69cc8e001be5229b",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/.ansible/tmp/ansible-tmp-1779284753.0636353-84-177995340694497/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "2e4c1e8bc1e6df93b34410a23238c384",
                            "mode": "0644",
                            "owner": "root",
                            "size": 17502,
                            "src": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/.ansible/tmp/ansible-tmp-1779284753.0636353-84-177995340694497/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:53.811118Z",
                            "start": "2026-05-20T13:45:53.037679Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-000000000010",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-05-20T13:46:00.873884Z",
                    "start": "2026-05-20T13:45:53.819491Z"
                },
                "id": "0242ac17-0010-d9b4-de08-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/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:54.044895Z",
                            "start": "2026-05-20T13:45:53.828541Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:54.092821Z",
                            "start": "2026-05-20T13:45:54.055494Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.828931",
                            "end": "2026-05-20 13:45:55.285763",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_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-d9b4-de08-00000000009c-0-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-20 13:45:54.456832",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa.pub\nThe key fingerprint is:\nSHA256:QBepmKE9eScrF8xKuREPhKxYJSPHUjisJh0x2tTt86A zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|o=O*o.. oo       |\n|+B*+=....        |\n|+*.+ &..         |\n|=.o X %..        |\n|o  . B OS        |\n|    E o .        |\n|     o           |\n|                 |\n|                 |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:QBepmKE9eScrF8xKuREPhKxYJSPHUjisJh0x2tTt86A zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|o=O*o.. oo       |",
                                "|+B*+=....        |",
                                "|+*.+ &..         |",
                                "|=.o X %..        |",
                                "|o  . B OS        |",
                                "|    E o .        |",
                                "|     o           |",
                                "|                 |",
                                "|                 |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0010-d9b4-de08-00000000009c-0-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:55.334084Z",
                            "start": "2026-05-20T13:45:54.114083Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-00000000009c",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:55.373595Z",
                            "start": "2026-05-20T13:45:55.339258Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:55.407064Z",
                            "start": "2026-05-20T13:45:55.392729Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDO+DbsHEID68KMXXXOdJYPaLxLNccrSF9sc4U8/YTmZLn9MTr6s6DXRZkUPUOmd6r4r6YIFiA25zuiaowkWATZvx1WnrO/icJLe+Wy8lQUKaPvzicDtfHpiQfoFXWvG/KSWTiJ5ZqrmzGhDBfjFp3KiTSzfishVqDUd4VuPc75bkkKMH5IhXVFdiOA94cmjyvrIukNUFdONxlQV7h+whGgt778sWENO4NAo69nS1dqarq7xkC337BBmSbB7ejDyAxbjGk03jX/gSQSdE89MywR7TUOty5zCswJKjJqkXddFsUCNi1N1un35wKg5U2sDIgKCqFLLHchCKmitpzw2fKlXXM6lxHziKipeVa4i1ZglXvGWoi7pXqiYrbJ5e0C7SAUSXc9Mz2iHTvchZ3SDBbjmijZhSfQmRKlKL9A9xCPW2oVvoL3TZy75LiV+pLlioWkRARWZCfNJT01MOyaUti6+pqBD5FruowAU6CUe7kefBBFc6J4XxbzNwvFWitz9dM= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDO+DbsHEID68KMXXXOdJYPaLxLNccrSF9sc4U8/YTmZLn9MTr6s6DXRZkUPUOmd6r4r6YIFiA25zuiaowkWATZvx1WnrO/icJLe+Wy8lQUKaPvzicDtfHpiQfoFXWvG/KSWTiJ5ZqrmzGhDBfjFp3KiTSzfishVqDUd4VuPc75bkkKMH5IhXVFdiOA94cmjyvrIukNUFdONxlQV7h+whGgt778sWENO4NAo69nS1dqarq7xkC337BBmSbB7ejDyAxbjGk03jX/gSQSdE89MywR7TUOty5zCswJKjJqkXddFsUCNi1N1un35wKg5U2sDIgKCqFLLHchCKmitpzw2fKlXXM6lxHziKipeVa4i1ZglXvGWoi7pXqiYrbJ5e0C7SAUSXc9Mz2iHTvchZ3SDBbjmijZhSfQmRKlKL9A9xCPW2oVvoL3TZy75LiV+pLlioWkRARWZCfNJT01MOyaUti6+pqBD5FruowAU6CUe7kefBBFc6J4XxbzNwvFWitz9dM= 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-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:55.910579Z",
                            "start": "2026-05-20T13:45:55.413249Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:56.133438Z",
                            "start": "2026-05-20T13:45:55.916318Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-0000000000be",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "12c2980217abbd0e4098f70883af8d13aed8c6de",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3a284d01350c4e47863191c38387b0c3_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "12c2980217abbd0e4098f70883af8d13aed8c6de",
                                    "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-1779284756.1713562-190-1086924311543/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "d03c79a6a848598b1ab2a1630702a4b1",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1779284756.1713562-190-1086924311543/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:56.669419Z",
                            "start": "2026-05-20T13:45:56.138489Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-0000000000bf",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "4acf1e3e0de04b60bc2117371af7c63737a2e251",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3a284d01350c4e47863191c38387b0c3_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "4acf1e3e0de04b60bc2117371af7c63737a2e251",
                                    "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-1779284756.7267554-200-61091907865978/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "e603fed1306f71ffc1ac15e13ba09641",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1779284756.7267554-200-61091907865978/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:57.259406Z",
                            "start": "2026-05-20T13:45:56.674385Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:57.289510Z",
                            "start": "2026-05-20T13:45:57.265149Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-0000000000a3",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:57.659760Z",
                            "start": "2026-05-20T13:45:57.300270Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-0000000000a5",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa"
                            ],
                            "delta": "0:00:00.010543",
                            "end": "2026-05-20 13:45:57.890822",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_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-d9b4-de08-0000000000ab-0-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-20 13:45:57.880279",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/3a284d01350c4e47863191c38387b0c3_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0010-d9b4-de08-0000000000ab-0-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:57.934515Z",
                            "start": "2026-05-20T13:45:57.675850Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-0000000000ab",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:58.290963Z",
                            "start": "2026-05-20T13:45:57.941899Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:58.321279Z",
                            "start": "2026-05-20T13:45:58.296998Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:58.717699Z",
                            "start": "2026-05-20T13:45:58.335359Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:45:59.621218Z",
                            "start": "2026-05-20T13:45:58.725631Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:46:00.254647Z",
                            "start": "2026-05-20T13:45:59.634267Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-d9b4-de08-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:46:00.873884Z",
                            "start": "2026-05-20T13:46:00.262940Z"
                        },
                        "id": "0242ac17-0010-d9b4-de08-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-05-20T13:46:05.045025Z",
                    "start": "2026-05-20T13:46:01.676377Z"
                },
                "id": "0242ac17-0010-ed61-569e-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-1779284761.7271726-5-21747172083337/uv-x86_64-unknown-linux-gnuaewhyvhc.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-1779284761.7271726-5-21747172083337/uv-x86_64-unknown-linux-gnuaewhyvhc.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ed61-569e-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:46:04.100560Z",
                            "start": "2026-05-20T13:46:01.687211Z"
                        },
                        "id": "0242ac17-0010-ed61-569e-000000000007",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.013861",
                            "end": "2026-05-20 13:46:04.245087",
                            "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-ed61-569e-000000000008-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-20 13:46:04.231226",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0010-ed61-569e-000000000008-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ed61-569e-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:46:04.647377Z",
                            "start": "2026-05-20T13:46:04.128638Z"
                        },
                        "id": "0242ac17-0010-ed61-569e-000000000008",
                        "name": "Print version"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "molecule_install_galaxy_sibling_collections",
                            "changed": false,
                            "checkouts": [],
                            "installed": [],
                            "invocation": {
                                "module_args": {
                                    "build_refs": [
                                        {
                                            "branch": "main",
                                            "change": "111",
                                            "change_message": "feat(glance_image): migrate role into common\n\n## Summary\n- add the atmosphere.common.glance_image role with the ETag-aware refresh, obsolete-image rename, upload-before-promote, and optional ETag behavior from vexxhost/atmosphere#3862\n- add an atmosphere.common.glance_image playbook and declare the openstack.cloud collection dependency\n- add a Zuul Molecule job for glance_image that deploys a minimal Atmosphere-backed Keystone/Glance environment with local-path PVC storage and only runs when glance_image files change\n- verify image create, unchanged ETag idempotency, and changed ETag replacement/obsolete tagging in Molecule\n\n## Validation\n- nix-shell -p pre-commit --run 'pre-commit run --files ...'\n- nix-shell -p ansible --run 'ansible-playbook --syntax-check ...'\n- nix-shell -p ansible-lint --run 'ansible-lint playbooks/glance_image.yaml roles/glance_image/tasks/main.yml extensions/molecule/glance-image/prepare.yml extensions/molecule/glance-image/converge.yml extensions/molecule/glance-image/verify.yml'",
                                            "change_url": "https://github.com/vexxhost/atmosphere.common/pull/111",
                                            "commit_id": "53a4605c0bbe784c9eea196079ed1c5054279f71",
                                            "patchset": "53a4605c0bbe784c9eea196079ed1c5054279f71",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/atmosphere.common",
                                                "name": "vexxhost/atmosphere.common",
                                                "short_name": "atmosphere.common",
                                                "src_dir": "src/github.com/vexxhost/atmosphere.common"
                                            },
                                            "src_dir": "src/github.com/vexxhost/atmosphere.common",
                                            "topic": null
                                        },
                                        {
                                            "branch": "main",
                                            "change": "111",
                                            "change_message": "feat(glance_image): migrate role into common\n\n## Summary\n- add the atmosphere.common.glance_image role with the ETag-aware refresh, obsolete-image rename, upload-before-promote, and optional ETag behavior from vexxhost/atmosphere#3862\n- add an atmosphere.common.glance_image playbook and declare the openstack.cloud collection dependency\n- add a Zuul Molecule job for glance_image that deploys a minimal Atmosphere-backed Keystone/Glance environment with local-path PVC storage and only runs when glance_image files change\n- verify image create, unchanged ETag idempotency, and changed ETag replacement/obsolete tagging in Molecule\n\n## Validation\n- nix-shell -p pre-commit --run 'pre-commit run --files ...'\n- nix-shell -p ansible --run 'ansible-playbook --syntax-check ...'\n- nix-shell -p ansible-lint --run 'ansible-lint playbooks/glance_image.yaml roles/glance_image/tasks/main.yml extensions/molecule/glance-image/prepare.yml extensions/molecule/glance-image/converge.yml extensions/molecule/glance-image/verify.yml'",
                                            "change_url": "https://github.com/vexxhost/atmosphere.common/pull/111",
                                            "commit_id": "53a4605c0bbe784c9eea196079ed1c5054279f71",
                                            "patchset": "53a4605c0bbe784c9eea196079ed1c5054279f71",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/atmosphere.common",
                                                "name": "vexxhost/atmosphere.common",
                                                "short_name": "atmosphere.common",
                                                "src_dir": "src/github.com/vexxhost/atmosphere.common"
                                            },
                                            "topic": null
                                        }
                                    ],
                                    "collections_path": "/home/zuul/.ansible/collections",
                                    "executable": "uv",
                                    "project_dir": "src/github.com/vexxhost/atmosphere.common",
                                    "projects": [
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/atmosphere.common",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "26d38ce82cc18b524d9634591c98465b78890d68",
                                            "name": "vexxhost/atmosphere.common",
                                            "required": false,
                                            "short_name": "atmosphere.common",
                                            "src_dir": "src/github.com/vexxhost/atmosphere.common"
                                        }
                                    ],
                                    "workspace_dir": "/home/zuul"
                                }
                            },
                            "log": [
                                "Skipping kubernetes.core: no checked-out sibling",
                                "Skipping openstack.cloud: no checked-out sibling",
                                "Skipping vexxhost.kubernetes: no checked-out sibling"
                            ],
                            "msg": "Skipping kubernetes.core: no checked-out sibling\nSkipping openstack.cloud: no checked-out sibling\nSkipping vexxhost.kubernetes: no checked-out sibling"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:46:05.045025Z",
                            "start": "2026-05-20T13:46:04.658665Z"
                        },
                        "id": "0242ac17-0010-ed61-569e-00000000000a",
                        "name": "Install Ansible collection siblings"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 3,
            "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-05-20T13:50:04.052239Z",
                    "start": "2026-05-20T13:46:05.723396Z"
                },
                "id": "0242ac17-0010-10f0-1963-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "checksum": "dba52c00a99200d53a3c058b69cc8e001be5229b",
                            "dest": "src/github.com/vexxhost/atmosphere.common/inventory.yaml",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "dba52c00a99200d53a3c058b69cc8e001be5229b",
                                    "content": null,
                                    "dest": "src/github.com/vexxhost/atmosphere.common",
                                    "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-1779284765.7703764-5-211699695263717/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "2e4c1e8bc1e6df93b34410a23238c384",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 17502,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1779284765.7703764-5-211699695263717/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:46:06.698313Z",
                            "start": "2026-05-20T13:46:05.734707Z"
                        },
                        "id": "0242ac17-0010-10f0-1963-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/atmosphere.common/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-05-20T13:46:07.029564Z",
                            "start": "2026-05-20T13:46:06.703563Z"
                        },
                        "id": "0242ac17-0010-10f0-1963-000000000005",
                        "name": "Switch \"ansible_host\" to private IP"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "molecule",
                                "test",
                                "--destroy",
                                "never",
                                "-s",
                                "secretgen-controller"
                            ],
                            "delta": "0:03:56.650190",
                            "end": "2026-05-20 13:50:03.842079",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run molecule test --destroy never -s secretgen-controller",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/atmosphere.common",
                                    "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-10f0-1963-000000000006-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-20 13:46:07.191889",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.12.3 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nDownloading pygments (1.2MiB)\nDownloading cryptography (4.3MiB)\nDownloading ansible-core (2.3MiB)\nDownloading kubernetes (1.9MiB)\n Downloading cryptography\n Downloading pygments\n Downloading kubernetes\n Downloading ansible-core\nInstalled 48 packages in 46ms\nINFO     Collection 'atmosphere.common' detected.\nINFO     Scenarios will be used from 'extensions/molecule'\nINFO     [secretgen-controller > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy\nINFO     [secretgen-controller > prerun] Performing prerun with role_name_check=0...\nINFO     [secretgen-controller > dependency] Executing\nWARNING  [secretgen-controller > dependency] Missing roles requirements file: requirements.yml\nWARNING  [secretgen-controller > dependency] Missing collections requirements file: collections.yml\nWARNING  [secretgen-controller > dependency] Executed: 2 missing (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > cleanup] Executing\nWARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > destroy] Executing\nWARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.\nINFO     [secretgen-controller > destroy] Executed: Successful\nINFO     [secretgen-controller > syntax] Executing\n\nplaybook: /home/zuul/src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/converge.yml\nINFO     [secretgen-controller > syntax] Executed: Successful\nINFO     [secretgen-controller > create] Executing\nWARNING  [secretgen-controller > create] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > prepare] Executing\n\nPLAY [Prepare] *****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 20 May 2026  13:46:36 +0000 (0:00:00.031)       0:00:00.031 *********\n[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.\nok: [controller]\n\nTASK [Install Debian packages] *************************************************\nWednesday 20 May 2026  13:46:38 +0000 (0:00:02.354)       0:00:02.386 *********\nok: [controller]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 20 May 2026  13:47:14 +0000 (0:00:35.653)       0:00:38.040 *********\nok: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nWednesday 20 May 2026  13:47:15 +0000 (0:00:00.854)       0:00:38.894 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nWednesday 20 May 2026  13:47:15 +0000 (0:00:00.462)       0:00:39.356 *********\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 20 May 2026  13:47:17 +0000 (0:00:01.459)       0:00:40.816 *********\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 20 May 2026  13:47:18 +0000 (0:00:00.984)       0:00:41.800 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nWednesday 20 May 2026  13:47:18 +0000 (0:00:00.428)       0:00:42.229 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nWednesday 20 May 2026  13:47:18 +0000 (0:00:00.306)       0:00:42.536 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nWednesday 20 May 2026  13:47:18 +0000 (0:00:00.031)       0:00:42.567 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nWednesday 20 May 2026  13:47:18 +0000 (0:00:00.040)       0:00:42.608 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nWednesday 20 May 2026  13:47:19 +0000 (0:00:00.961)       0:00:43.569 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nWednesday 20 May 2026  13:47:20 +0000 (0:00:00.317)       0:00:43.887 *********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 20 May 2026  13:47:20 +0000 (0:00:00.047)       0:00:43.934 *********\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 20 May 2026  13:47:21 +0000 (0:00:00.858)       0:00:44.793 *********\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 20 May 2026  13:47:21 +0000 (0:00:00.394)       0:00:45.187 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 20 May 2026  13:47:21 +0000 (0:00:00.034)       0:00:45.222 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:47:21 +0000 (0:00:00.345)       0:00:45.567 *********\nok: [controller] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:47:21 +0000 (0:00:00.086)       0:00:45.654 *********\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 20 May 2026  13:47:22 +0000 (0:00:00.958)       0:00:46.612 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 20 May 2026  13:47:22 +0000 (0:00:00.035)       0:00:46.647 *********\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 20 May 2026  13:47:23 +0000 (0:00:00.312)       0:00:46.960 *********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:47:24 +0000 (0:00:00.984)       0:00:47.945 *********\nok: [controller] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.3/containerd-2.2.3-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:47:24 +0000 (0:00:00.067)       0:00:48.012 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:47:25 +0000 (0:00:00.976)       0:00:48.988 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 20 May 2026  13:47:28 +0000 (0:00:03.172)       0:00:52.161 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 20 May 2026  13:47:28 +0000 (0:00:00.031)       0:00:52.192 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 20 May 2026  13:47:28 +0000 (0:00:00.027)       0:00:52.219 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 20 May 2026  13:47:28 +0000 (0:00:00.023)       0:00:52.243 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 20 May 2026  13:47:35 +0000 (0:00:07.384)       0:00:59.628 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 20 May 2026  13:47:36 +0000 (0:00:00.720)       0:01:00.349 *********\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 20 May 2026  13:47:38 +0000 (0:00:01.530)       0:01:01.880 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 20 May 2026  13:47:38 +0000 (0:00:00.817)       0:01:02.697 *********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nWednesday 20 May 2026  13:47:38 +0000 (0:00:00.006)       0:01:02.704 *********\nchanged: [controller]\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nWednesday 20 May 2026  13:47:39 +0000 (0:00:00.886)       0:01:03.590 *********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 20 May 2026  13:47:40 +0000 (0:00:00.952)       0:01:04.543 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nWednesday 20 May 2026  13:47:41 +0000 (0:00:00.717)       0:01:05.260 *********\n[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000175374's Python /usr/bin/python3.12. 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 np0000175374's Python /usr/bin/python3.12. 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 20 May 2026  13:47:42 +0000 (0:00:00.706)       0:01:05.966 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nWednesday 20 May 2026  13:47:42 +0000 (0:00:00.036)       0:01:06.003 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nWednesday 20 May 2026  13:47:42 +0000 (0:00:00.028)       0:01:06.031 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nWednesday 20 May 2026  13:47:42 +0000 (0:00:00.028)       0:01:06.060 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nWednesday 20 May 2026  13:47:42 +0000 (0:00:00.032)       0:01:06.092 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 20 May 2026  13:47:42 +0000 (0:00:00.039)       0:01:06.132 *********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:47:42 +0000 (0:00:00.322)       0:01:06.454 *********\nok: [controller] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:47:42 +0000 (0:00:00.040)       0:01:06.495 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:47:43 +0000 (0:00:00.952)       0:01:07.448 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 20 May 2026  13:47:43 +0000 (0:00:00.035)       0:01:07.484 *********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:47:44 +0000 (0:00:00.310)       0:01:07.794 *********\nok: [controller] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubectl\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:47:44 +0000 (0:00:00.045)       0:01:07.840 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:47:44 +0000 (0:00:00.860)       0:01:08.700 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nWednesday 20 May 2026  13:47:44 +0000 (0:00:00.032)       0:01:08.732 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nWednesday 20 May 2026  13:47:44 +0000 (0:00:00.025)       0:01:08.757 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nWednesday 20 May 2026  13:47:45 +0000 (0:00:00.023)       0:01:08.781 *********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nWednesday 20 May 2026  13:47:45 +0000 (0:00:00.022)       0:01:08.804 *********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nWednesday 20 May 2026  13:47:46 +0000 (0:00:01.039)       0:01:09.844 *********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nWednesday 20 May 2026  13:47:46 +0000 (0:00:00.681)       0:01:10.526 *********\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 20 May 2026  13:47:48 +0000 (0:00:01.485)       0:01:12.011 *********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nWednesday 20 May 2026  13:47:49 +0000 (0:00:00.776)       0:01:12.787 *********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nWednesday 20 May 2026  13:47:49 +0000 (0:00:00.004)       0:01:12.792 *********\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 20 May 2026  13:47:49 +0000 (0:00:00.493)       0:01:13.285 *********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:47:49 +0000 (0:00:00.309)       0:01:13.595 *********\nok: [controller] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/crictl-v1.35.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:47:49 +0000 (0:00:00.066)       0:01:13.661 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:47:51 +0000 (0:00:01.357)       0:01:15.019 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:47:52 +0000 (0:00:01.672)       0:01:16.692 *********\nok: [controller] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/critest-v1.35.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:47:52 +0000 (0:00:00.059)       0:01:16.751 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:47:54 +0000 (0:00:01.159)       0:01:17.911 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nWednesday 20 May 2026  13:47:55 +0000 (0:00:01.703)       0:01:19.614 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nWednesday 20 May 2026  13:47:56 +0000 (0:00:00.695)       0:01:20.310 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 20 May 2026  13:47:56 +0000 (0:00:00.324)       0:01:20.635 *********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:47:57 +0000 (0:00:00.329)       0:01:20.964 *********\nok: [controller] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:47:57 +0000 (0:00:00.060)       0:01:21.024 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:47:58 +0000 (0:00:00.981)       0:01:22.006 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nWednesday 20 May 2026  13:48:02 +0000 (0:00:03.972)       0:01:25.978 *********\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 20 May 2026  13:48:02 +0000 (0:00:00.042)       0:01:26.021 *********\nok: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nWednesday 20 May 2026  13:48:03 +0000 (0:00:01.144)       0:01:27.166 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nWednesday 20 May 2026  13:48:03 +0000 (0:00:00.474)       0:01:27.641 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nWednesday 20 May 2026  13:48:04 +0000 (0:00:00.712)       0:01:28.353 *********\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 20 May 2026  13:48:05 +0000 (0:00:01.394)       0:01:29.748 *********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:48:06 +0000 (0:00:00.341)       0:01:30.090 *********\nok: [controller] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubelet\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nWednesday 20 May 2026  13:48:06 +0000 (0:00:00.039)       0:01:30.129 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:48:07 +0000 (0:00:01.218)       0:01:31.348 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nWednesday 20 May 2026  13:48:07 +0000 (0:00:00.031)       0:01:31.380 *********\nok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\n\nTASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************\nWednesday 20 May 2026  13:48:07 +0000 (0:00:00.053)       0:01:31.433 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nWednesday 20 May 2026  13:48:07 +0000 (0:00:00.023)       0:01:31.457 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nWednesday 20 May 2026  13:48:11 +0000 (0:00:03.623)       0:01:35.080 *********\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 20 May 2026  13:48:13 +0000 (0:00:02.141)       0:01:37.222 *********\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 20 May 2026  13:48:14 +0000 (0:00:00.875)       0:01:38.098 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nWednesday 20 May 2026  13:48:15 +0000 (0:00:00.690)       0:01:38.788 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nWednesday 20 May 2026  13:48:15 +0000 (0:00:00.695)       0:01:39.483 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nWednesday 20 May 2026  13:48:16 +0000 (0:00:00.492)       0:01:39.976 *********\n[ERROR]: Task failed: Conditional result was '' of type 'str', which evaluates to False. Conditionals must have a boolean result.\n\nTask failed.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:86:7\n\n84       register: kubelet_swapon\n85\n86     - name: Disable swap\n         ^ column 7\n\n<<< caused by >>>\n\nConditional result was '' of type 'str', which evaluates to False. Conditionals must have a boolean result.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11\n\n89       ignore_errors: \"{{ ansible_check_mode }}\"\n90       when:\n91         - 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 was '' of type 'str', which evaluates to False. Conditionals must have a boolean result.\"}\n...ignoring\n\nTASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********\nWednesday 20 May 2026  13:48:16 +0000 (0:00:00.031)       0:01:40.008 *********\nok: [controller] => (item=swap)\nok: [controller] => (item=none)\n\nTASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***\nWednesday 20 May 2026  13:48:16 +0000 (0:00:00.743)       0:01:40.752 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nWednesday 20 May 2026  13:48:17 +0000 (0:00:00.683)       0:01:41.436 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nWednesday 20 May 2026  13:48:18 +0000 (0:00:00.745)       0:01:42.181 *********\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nWednesday 20 May 2026  13:48:18 +0000 (0:00:00.005)       0:01:42.186 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nWednesday 20 May 2026  13:48:19 +0000 (0:00:00.938)       0:01:43.125 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nWednesday 20 May 2026  13:48:20 +0000 (0:00:00.734)       0:01:43.859 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nWednesday 20 May 2026  13:48:21 +0000 (0:00:00.995)       0:01:44.854 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nWednesday 20 May 2026  13:48:22 +0000 (0:00:00.921)       0:01:45.776 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nWednesday 20 May 2026  13:48:22 +0000 (0:00:00.465)       0:01:46.242 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nWednesday 20 May 2026  13:48:23 +0000 (0:00:00.587)       0:01:46.829 *********\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 20 May 2026  13:48:23 +0000 (0:00:00.072)       0:01:46.902 *********\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 20 May 2026  13:48:23 +0000 (0:00:00.077)       0:01:46.979 *********\nok: [controller] => (item=controller)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nWednesday 20 May 2026  13:48:23 +0000 (0:00:00.318)       0:01:47.297 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nWednesday 20 May 2026  13:48:23 +0000 (0:00:00.040)       0:01:47.338 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nWednesday 20 May 2026  13:48:23 +0000 (0:00:00.046)       0:01:47.384 *********\nok: [controller] => {\n    \"msg\": \"controller\"\n}\n\nTASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***\nWednesday 20 May 2026  13:48:23 +0000 (0:00:00.036)       0:01:47.421 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.761)       0:01:48.182 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.212 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.032)       0:01:48.244 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.274 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.030)       0:01:48.305 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.334 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.030)       0:01:48.364 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nWednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.394 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nWednesday 20 May 2026  13:48:54 +0000 (0:00:29.847)       0:02:18.242 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nWednesday 20 May 2026  13:48:54 +0000 (0:00:00.314)       0:02:18.557 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***\nWednesday 20 May 2026  13:48:54 +0000 (0:00:00.028)       0:02:18.585 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***\nWednesday 20 May 2026  13:48:55 +0000 (0:00:00.337)       0:02:18.922 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******\nWednesday 20 May 2026  13:48:55 +0000 (0:00:00.310)       0:02:19.233 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************\nWednesday 20 May 2026  13:48:55 +0000 (0:00:00.309)       0:02:19.542 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***\nWednesday 20 May 2026  13:48:55 +0000 (0:00:00.033)       0:02:19.575 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************\nWednesday 20 May 2026  13:48:55 +0000 (0:00:00.033)       0:02:19.609 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***\nWednesday 20 May 2026  13:48:55 +0000 (0:00:00.035)       0:02:19.645 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***\nWednesday 20 May 2026  13:49:03 +0000 (0:00:07.273)       0:02:26.918 *********\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************\nWednesday 20 May 2026  13:49:04 +0000 (0:00:00.856)       0:02:27.775 *********\nskipping: [controller] => (item=DaemonSet)\nskipping: [controller] => (item=ConfigMap)\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************\nWednesday 20 May 2026  13:49:04 +0000 (0:00:00.040)       0:02:27.816 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***\nWednesday 20 May 2026  13:49:04 +0000 (0:00:00.034)       0:02:27.850 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***\nWednesday 20 May 2026  13:49:04 +0000 (0:00:00.032)       0:02:27.883 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************\nWednesday 20 May 2026  13:49:04 +0000 (0:00:00.026)       0:02:27.910 *********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***\nWednesday 20 May 2026  13:49:04 +0000 (0:00:00.031)       0:02:27.942 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***\nWednesday 20 May 2026  13:49:04 +0000 (0:00:00.541)       0:02:28.484 *********\nchanged: [controller]\n\nPLAY [Install control-plane components] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 20 May 2026  13:49:05 +0000 (0:00:01.034)       0:02:29.518 *********\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nWednesday 20 May 2026  13:49:06 +0000 (0:00:00.868)       0:02:30.387 *********\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nWednesday 20 May 2026  13:49:06 +0000 (0:00:00.307)       0:02:30.694 *********\nok: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nWednesday 20 May 2026  13:49:07 +0000 (0:00:01.030)       0:02:31.725 *********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:49:08 +0000 (0:00:00.348)       0:02:32.073 *********\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 20 May 2026  13:49:08 +0000 (0:00:00.032)       0:02:32.106 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:49:09 +0000 (0:00:01.150)       0:02:33.256 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************\nWednesday 20 May 2026  13:49:11 +0000 (0:00:01.760)       0:02:35.016 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************\nWednesday 20 May 2026  13:49:11 +0000 (0:00:00.438)       0:02:35.455 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************\nWednesday 20 May 2026  13:49:11 +0000 (0:00:00.313)       0:02:35.768 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***\nWednesday 20 May 2026  13:49:12 +0000 (0:00:00.360)       0:02:36.129 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***\nWednesday 20 May 2026  13:49:12 +0000 (0:00:00.316)       0:02:36.445 *********\nok: [controller]\n\nTASK [Install plugin] **********************************************************\nWednesday 20 May 2026  13:49:12 +0000 (0:00:00.299)       0:02:36.744 *********\nincluded: vexxhost.containers.download_artifact for controller\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nWednesday 20 May 2026  13:49:13 +0000 (0:00:00.051)       0:02:36.796 *********\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 20 May 2026  13:49:13 +0000 (0:00:00.037)       0:02:36.834 *********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nWednesday 20 May 2026  13:49:13 +0000 (0:00:00.827)       0:02:37.662 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 20 May 2026  13:49:17 +0000 (0:00:03.134)       0:02:40.796 *********\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 20 May 2026  13:49:17 +0000 (0:00:00.041)       0:02:40.838 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************\nWednesday 20 May 2026  13:49:17 +0000 (0:00:00.748)       0:02:41.587 *********\nok: [controller]\n\nTASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************\nWednesday 20 May 2026  13:49:18 +0000 (0:00:00.898)       0:02:42.485 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nWednesday 20 May 2026  13:49:20 +0000 (0:00:02.166)       0:02:44.652 *********\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 20 May 2026  13:49:20 +0000 (0:00:00.030)       0:02:44.683 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************\nWednesday 20 May 2026  13:49:21 +0000 (0:00:00.591)       0:02:45.274 *********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************\nWednesday 20 May 2026  13:49:51 +0000 (0:00:30.005)       0:03:15.280 *********\nchanged: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=118  changed=54   unreachable=0    failed=0    skipped=34   rescued=0    ignored=3\n\n\nTASKS RECAP ********************************************************************\nWednesday 20 May 2026  13:49:52 +0000 (0:00:00.895)       0:03:16.176 *********\n===============================================================================\nInstall Debian packages ------------------------------------------------ 35.65s\nvexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 30.01s\nvexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 29.85s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 7.38s\nvexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems --- 7.27s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.97s\nvexxhost.kubernetes.kubelet : Install additional packages --------------- 3.62s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.17s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.13s\nGathering Facts --------------------------------------------------------- 2.35s\nvexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.17s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.14s\nvexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 1.89s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.76s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.70s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.67s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.53s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.49s\nvexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.46s\nvexxhost.containers.cni_plugins : Enable kernel modules in runtime ------ 1.39s\nINFO     [secretgen-controller > prepare] Executed: Successful\nINFO     [secretgen-controller > converge] Executing\n\nPLAY [Deploy \"secretgen-controller\"] *******************************************\n\nTASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****\nWednesday 20 May 2026  13:49:53 +0000 (0:00:00.013)       0:00:00.013 *********\n[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.\n[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.\n[DEPRECATION WARNING]: Direct access to the `environment` attribute is deprecated. This feature will be removed from ansible-core version 2.23. Consider using `copy_with_new_env` or passing `overrides` to `template`.\nchanged: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nWednesday 20 May 2026  13:49:54 +0000 (0:00:01.465)       0:00:01.478 *********\n===============================================================================\natmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.47s\nINFO     [secretgen-controller > converge] Executed: Successful\nINFO     [secretgen-controller > idempotence] Executing\n\nPLAY [Deploy \"secretgen-controller\"] *******************************************\n\nTASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****\nWednesday 20 May 2026  13:49:56 +0000 (0:00:00.013)       0:00:00.013 *********\n[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.\n[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.\n[DEPRECATION WARNING]: Direct access to the `environment` attribute is deprecated. This feature will be removed from ansible-core version 2.23. Consider using `copy_with_new_env` or passing `overrides` to `template`.\nok: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nWednesday 20 May 2026  13:49:57 +0000 (0:00:01.435)       0:00:01.449 *********\n===============================================================================\natmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.44s\nINFO     [secretgen-controller > idempotence] Executed: Successful\nINFO     [secretgen-controller > side_effect] Executing\nWARNING  [secretgen-controller > side_effect] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > verify] Executing\n\nPLAY [Verify] ******************************************************************\n\nTASK [Gathering Facts] *********************************************************\nWednesday 20 May 2026  13:49:58 +0000 (0:00:00.009)       0:00:00.009 *********\n[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.\nok: [controller]\n\nTASK [Wait for secretgen-controller deployment to be available] ****************\nWednesday 20 May 2026  13:50:00 +0000 (0:00:02.321)       0:00:02.331 *********\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.\nok: [controller]\n\nTASK [Create a test Password resource] *****************************************\nWednesday 20 May 2026  13:50:01 +0000 (0:00:00.973)       0:00:03.305 *********\nchanged: [controller]\n\nTASK [Wait for test-password secret to be generated] ***************************\nWednesday 20 May 2026  13:50:02 +0000 (0:00:00.994)       0:00:04.299 *********\nok: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nWednesday 20 May 2026  13:50:03 +0000 (0:00:00.790)       0:00:05.089 *********\n===============================================================================\nGathering Facts --------------------------------------------------------- 2.32s\nCreate a test Password resource ----------------------------------------- 0.99s\nWait for secretgen-controller deployment to be available ---------------- 0.97s\nWait for test-password secret to be generated --------------------------- 0.79s\nINFO     [secretgen-controller > verify] Executed: Successful\nINFO     [secretgen-controller > cleanup] Executing\nWARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > destroy] Executing\nWARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.\nINFO     [secretgen-controller > destroy] Executed: Successful\nWARNING  Molecule executed 1 scenario (1 missing files)",
                            "stdout_lines": [
                                "Using CPython 3.12.3 interpreter at: /usr/bin/python3",
                                "Creating virtual environment at: .venv",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "Downloading pygments (1.2MiB)",
                                "Downloading cryptography (4.3MiB)",
                                "Downloading ansible-core (2.3MiB)",
                                "Downloading kubernetes (1.9MiB)",
                                " Downloading cryptography",
                                " Downloading pygments",
                                " Downloading kubernetes",
                                " Downloading ansible-core",
                                "Installed 48 packages in 46ms",
                                "INFO     Collection 'atmosphere.common' detected.",
                                "INFO     Scenarios will be used from 'extensions/molecule'",
                                "INFO     [secretgen-controller > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy",
                                "INFO     [secretgen-controller > prerun] Performing prerun with role_name_check=0...",
                                "INFO     [secretgen-controller > dependency] Executing",
                                "WARNING  [secretgen-controller > dependency] Missing roles requirements file: requirements.yml",
                                "WARNING  [secretgen-controller > dependency] Missing collections requirements file: collections.yml",
                                "WARNING  [secretgen-controller > dependency] Executed: 2 missing (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > cleanup] Executing",
                                "WARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > destroy] Executing",
                                "WARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [secretgen-controller > destroy] Executed: Successful",
                                "INFO     [secretgen-controller > syntax] Executing",
                                "",
                                "playbook: /home/zuul/src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/converge.yml",
                                "INFO     [secretgen-controller > syntax] Executed: Successful",
                                "INFO     [secretgen-controller > create] Executing",
                                "WARNING  [secretgen-controller > create] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > prepare] Executing",
                                "",
                                "PLAY [Prepare] *****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 20 May 2026  13:46:36 +0000 (0:00:00.031)       0:00:00.031 *********",
                                "[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller]",
                                "",
                                "TASK [Install Debian packages] *************************************************",
                                "Wednesday 20 May 2026  13:46:38 +0000 (0:00:02.354)       0:00:02.386 *********",
                                "ok: [controller]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 20 May 2026  13:47:14 +0000 (0:00:35.653)       0:00:38.040 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Wednesday 20 May 2026  13:47:15 +0000 (0:00:00.854)       0:00:38.894 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Wednesday 20 May 2026  13:47:15 +0000 (0:00:00.462)       0:00:39.356 *********",
                                "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 20 May 2026  13:47:17 +0000 (0:00:01.459)       0:00:40.816 *********",
                                "[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 20 May 2026  13:47:18 +0000 (0:00:00.984)       0:00:41.800 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Wednesday 20 May 2026  13:47:18 +0000 (0:00:00.428)       0:00:42.229 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Wednesday 20 May 2026  13:47:18 +0000 (0:00:00.306)       0:00:42.536 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Wednesday 20 May 2026  13:47:18 +0000 (0:00:00.031)       0:00:42.567 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Wednesday 20 May 2026  13:47:18 +0000 (0:00:00.040)       0:00:42.608 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Wednesday 20 May 2026  13:47:19 +0000 (0:00:00.961)       0:00:43.569 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Wednesday 20 May 2026  13:47:20 +0000 (0:00:00.317)       0:00:43.887 *********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 20 May 2026  13:47:20 +0000 (0:00:00.047)       0:00:43.934 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 20 May 2026  13:47:21 +0000 (0:00:00.858)       0:00:44.793 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 20 May 2026  13:47:21 +0000 (0:00:00.394)       0:00:45.187 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 20 May 2026  13:47:21 +0000 (0:00:00.034)       0:00:45.222 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:47:21 +0000 (0:00:00.345)       0:00:45.567 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:47:21 +0000 (0:00:00.086)       0:00:45.654 *********",
                                "[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 20 May 2026  13:47:22 +0000 (0:00:00.958)       0:00:46.612 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 20 May 2026  13:47:22 +0000 (0:00:00.035)       0:00:46.647 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 20 May 2026  13:47:23 +0000 (0:00:00.312)       0:00:46.960 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:47:24 +0000 (0:00:00.984)       0:00:47.945 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.3/containerd-2.2.3-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:47:24 +0000 (0:00:00.067)       0:00:48.012 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:47:25 +0000 (0:00:00.976)       0:00:48.988 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 20 May 2026  13:47:28 +0000 (0:00:03.172)       0:00:52.161 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 20 May 2026  13:47:28 +0000 (0:00:00.031)       0:00:52.192 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 20 May 2026  13:47:28 +0000 (0:00:00.027)       0:00:52.219 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 20 May 2026  13:47:28 +0000 (0:00:00.023)       0:00:52.243 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 20 May 2026  13:47:35 +0000 (0:00:07.384)       0:00:59.628 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 20 May 2026  13:47:36 +0000 (0:00:00.720)       0:01:00.349 *********",
                                "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 20 May 2026  13:47:38 +0000 (0:00:01.530)       0:01:01.880 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 20 May 2026  13:47:38 +0000 (0:00:00.817)       0:01:02.697 *********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Wednesday 20 May 2026  13:47:38 +0000 (0:00:00.006)       0:01:02.704 *********",
                                "changed: [controller]",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Wednesday 20 May 2026  13:47:39 +0000 (0:00:00.886)       0:01:03.590 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 20 May 2026  13:47:40 +0000 (0:00:00.952)       0:01:04.543 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Wednesday 20 May 2026  13:47:41 +0000 (0:00:00.717)       0:01:05.260 *********",
                                "[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000175374's Python /usr/bin/python3.12. 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 np0000175374's Python /usr/bin/python3.12. 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 20 May 2026  13:47:42 +0000 (0:00:00.706)       0:01:05.966 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Wednesday 20 May 2026  13:47:42 +0000 (0:00:00.036)       0:01:06.003 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Wednesday 20 May 2026  13:47:42 +0000 (0:00:00.028)       0:01:06.031 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Wednesday 20 May 2026  13:47:42 +0000 (0:00:00.028)       0:01:06.060 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Wednesday 20 May 2026  13:47:42 +0000 (0:00:00.032)       0:01:06.092 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 20 May 2026  13:47:42 +0000 (0:00:00.039)       0:01:06.132 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:47:42 +0000 (0:00:00.322)       0:01:06.454 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:47:42 +0000 (0:00:00.040)       0:01:06.495 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:47:43 +0000 (0:00:00.952)       0:01:07.448 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 20 May 2026  13:47:43 +0000 (0:00:00.035)       0:01:07.484 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:47:44 +0000 (0:00:00.310)       0:01:07.794 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubectl\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:47:44 +0000 (0:00:00.045)       0:01:07.840 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:47:44 +0000 (0:00:00.860)       0:01:08.700 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Wednesday 20 May 2026  13:47:44 +0000 (0:00:00.032)       0:01:08.732 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Wednesday 20 May 2026  13:47:44 +0000 (0:00:00.025)       0:01:08.757 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Wednesday 20 May 2026  13:47:45 +0000 (0:00:00.023)       0:01:08.781 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Wednesday 20 May 2026  13:47:45 +0000 (0:00:00.022)       0:01:08.804 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Wednesday 20 May 2026  13:47:46 +0000 (0:00:01.039)       0:01:09.844 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Wednesday 20 May 2026  13:47:46 +0000 (0:00:00.681)       0:01:10.526 *********",
                                "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 20 May 2026  13:47:48 +0000 (0:00:01.485)       0:01:12.011 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Wednesday 20 May 2026  13:47:49 +0000 (0:00:00.776)       0:01:12.787 *********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Wednesday 20 May 2026  13:47:49 +0000 (0:00:00.004)       0:01:12.792 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 20 May 2026  13:47:49 +0000 (0:00:00.493)       0:01:13.285 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:47:49 +0000 (0:00:00.309)       0:01:13.595 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/crictl-v1.35.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:47:49 +0000 (0:00:00.066)       0:01:13.661 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:47:51 +0000 (0:00:01.357)       0:01:15.019 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:47:52 +0000 (0:00:01.672)       0:01:16.692 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/critest-v1.35.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:47:52 +0000 (0:00:00.059)       0:01:16.751 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:47:54 +0000 (0:00:01.159)       0:01:17.911 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Wednesday 20 May 2026  13:47:55 +0000 (0:00:01.703)       0:01:19.614 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Wednesday 20 May 2026  13:47:56 +0000 (0:00:00.695)       0:01:20.310 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 20 May 2026  13:47:56 +0000 (0:00:00.324)       0:01:20.635 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:47:57 +0000 (0:00:00.329)       0:01:20.964 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:47:57 +0000 (0:00:00.060)       0:01:21.024 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:47:58 +0000 (0:00:00.981)       0:01:22.006 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Wednesday 20 May 2026  13:48:02 +0000 (0:00:03.972)       0:01:25.978 *********",
                                "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 20 May 2026  13:48:02 +0000 (0:00:00.042)       0:01:26.021 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Wednesday 20 May 2026  13:48:03 +0000 (0:00:01.144)       0:01:27.166 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Wednesday 20 May 2026  13:48:03 +0000 (0:00:00.474)       0:01:27.641 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Wednesday 20 May 2026  13:48:04 +0000 (0:00:00.712)       0:01:28.353 *********",
                                "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 20 May 2026  13:48:05 +0000 (0:00:01.394)       0:01:29.748 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:48:06 +0000 (0:00:00.341)       0:01:30.090 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubelet\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:48:06 +0000 (0:00:00.039)       0:01:30.129 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:48:07 +0000 (0:00:01.218)       0:01:31.348 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Wednesday 20 May 2026  13:48:07 +0000 (0:00:00.031)       0:01:31.380 *********",
                                "ok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************",
                                "Wednesday 20 May 2026  13:48:07 +0000 (0:00:00.053)       0:01:31.433 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Wednesday 20 May 2026  13:48:07 +0000 (0:00:00.023)       0:01:31.457 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Wednesday 20 May 2026  13:48:11 +0000 (0:00:03.623)       0:01:35.080 *********",
                                "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 20 May 2026  13:48:13 +0000 (0:00:02.141)       0:01:37.222 *********",
                                "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 20 May 2026  13:48:14 +0000 (0:00:00.875)       0:01:38.098 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Wednesday 20 May 2026  13:48:15 +0000 (0:00:00.690)       0:01:38.788 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Wednesday 20 May 2026  13:48:15 +0000 (0:00:00.695)       0:01:39.483 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Wednesday 20 May 2026  13:48:16 +0000 (0:00:00.492)       0:01:39.976 *********",
                                "[ERROR]: Task failed: Conditional result was '' of type 'str', which evaluates to False. Conditionals must have a boolean result.",
                                "",
                                "Task failed.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:86:7",
                                "",
                                "84       register: kubelet_swapon",
                                "85",
                                "86     - name: Disable swap",
                                "         ^ column 7",
                                "",
                                "<<< caused by >>>",
                                "",
                                "Conditional result was '' of type 'str', which evaluates to False. Conditionals must have a boolean result.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11",
                                "",
                                "89       ignore_errors: \"{{ ansible_check_mode }}\"",
                                "90       when:",
                                "91         - 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 was '' of type 'str', which evaluates to False. Conditionals must have a boolean result.\"}",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********",
                                "Wednesday 20 May 2026  13:48:16 +0000 (0:00:00.031)       0:01:40.008 *********",
                                "ok: [controller] => (item=swap)",
                                "ok: [controller] => (item=none)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***",
                                "Wednesday 20 May 2026  13:48:16 +0000 (0:00:00.743)       0:01:40.752 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Wednesday 20 May 2026  13:48:17 +0000 (0:00:00.683)       0:01:41.436 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Wednesday 20 May 2026  13:48:18 +0000 (0:00:00.745)       0:01:42.181 *********",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Wednesday 20 May 2026  13:48:18 +0000 (0:00:00.005)       0:01:42.186 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Wednesday 20 May 2026  13:48:19 +0000 (0:00:00.938)       0:01:43.125 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Wednesday 20 May 2026  13:48:20 +0000 (0:00:00.734)       0:01:43.859 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Wednesday 20 May 2026  13:48:21 +0000 (0:00:00.995)       0:01:44.854 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Wednesday 20 May 2026  13:48:22 +0000 (0:00:00.921)       0:01:45.776 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Wednesday 20 May 2026  13:48:22 +0000 (0:00:00.465)       0:01:46.242 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Wednesday 20 May 2026  13:48:23 +0000 (0:00:00.587)       0:01:46.829 *********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************",
                                "Wednesday 20 May 2026  13:48:23 +0000 (0:00:00.072)       0:01:46.902 *********",
                                "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 20 May 2026  13:48:23 +0000 (0:00:00.077)       0:01:46.979 *********",
                                "ok: [controller] => (item=controller)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Wednesday 20 May 2026  13:48:23 +0000 (0:00:00.318)       0:01:47.297 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Wednesday 20 May 2026  13:48:23 +0000 (0:00:00.040)       0:01:47.338 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Wednesday 20 May 2026  13:48:23 +0000 (0:00:00.046)       0:01:47.384 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"controller\"",
                                "}",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***",
                                "Wednesday 20 May 2026  13:48:23 +0000 (0:00:00.036)       0:01:47.421 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.761)       0:01:48.182 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.212 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.032)       0:01:48.244 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.274 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.030)       0:01:48.305 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.334 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.030)       0:01:48.364 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Wednesday 20 May 2026  13:48:24 +0000 (0:00:00.029)       0:01:48.394 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Wednesday 20 May 2026  13:48:54 +0000 (0:00:29.847)       0:02:18.242 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Wednesday 20 May 2026  13:48:54 +0000 (0:00:00.314)       0:02:18.557 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***",
                                "Wednesday 20 May 2026  13:48:54 +0000 (0:00:00.028)       0:02:18.585 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***",
                                "Wednesday 20 May 2026  13:48:55 +0000 (0:00:00.337)       0:02:18.922 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******",
                                "Wednesday 20 May 2026  13:48:55 +0000 (0:00:00.310)       0:02:19.233 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************",
                                "Wednesday 20 May 2026  13:48:55 +0000 (0:00:00.309)       0:02:19.542 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***",
                                "Wednesday 20 May 2026  13:48:55 +0000 (0:00:00.033)       0:02:19.575 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************",
                                "Wednesday 20 May 2026  13:48:55 +0000 (0:00:00.033)       0:02:19.609 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***",
                                "Wednesday 20 May 2026  13:48:55 +0000 (0:00:00.035)       0:02:19.645 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***",
                                "Wednesday 20 May 2026  13:49:03 +0000 (0:00:07.273)       0:02:26.918 *********",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************",
                                "Wednesday 20 May 2026  13:49:04 +0000 (0:00:00.856)       0:02:27.775 *********",
                                "skipping: [controller] => (item=DaemonSet)",
                                "skipping: [controller] => (item=ConfigMap)",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************",
                                "Wednesday 20 May 2026  13:49:04 +0000 (0:00:00.040)       0:02:27.816 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***",
                                "Wednesday 20 May 2026  13:49:04 +0000 (0:00:00.034)       0:02:27.850 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***",
                                "Wednesday 20 May 2026  13:49:04 +0000 (0:00:00.032)       0:02:27.883 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************",
                                "Wednesday 20 May 2026  13:49:04 +0000 (0:00:00.026)       0:02:27.910 *********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***",
                                "Wednesday 20 May 2026  13:49:04 +0000 (0:00:00.031)       0:02:27.942 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***",
                                "Wednesday 20 May 2026  13:49:04 +0000 (0:00:00.541)       0:02:28.484 *********",
                                "changed: [controller]",
                                "",
                                "PLAY [Install control-plane components] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 20 May 2026  13:49:05 +0000 (0:00:01.034)       0:02:29.518 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Wednesday 20 May 2026  13:49:06 +0000 (0:00:00.868)       0:02:30.387 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Wednesday 20 May 2026  13:49:06 +0000 (0:00:00.307)       0:02:30.694 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Wednesday 20 May 2026  13:49:07 +0000 (0:00:01.030)       0:02:31.725 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:49:08 +0000 (0:00:00.348)       0:02:32.073 *********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Wednesday 20 May 2026  13:49:08 +0000 (0:00:00.032)       0:02:32.106 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:49:09 +0000 (0:00:01.150)       0:02:33.256 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************",
                                "Wednesday 20 May 2026  13:49:11 +0000 (0:00:01.760)       0:02:35.016 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************",
                                "Wednesday 20 May 2026  13:49:11 +0000 (0:00:00.438)       0:02:35.455 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************",
                                "Wednesday 20 May 2026  13:49:11 +0000 (0:00:00.313)       0:02:35.768 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***",
                                "Wednesday 20 May 2026  13:49:12 +0000 (0:00:00.360)       0:02:36.129 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***",
                                "Wednesday 20 May 2026  13:49:12 +0000 (0:00:00.316)       0:02:36.445 *********",
                                "ok: [controller]",
                                "",
                                "TASK [Install plugin] **********************************************************",
                                "Wednesday 20 May 2026  13:49:12 +0000 (0:00:00.299)       0:02:36.744 *********",
                                "included: vexxhost.containers.download_artifact for controller",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Wednesday 20 May 2026  13:49:13 +0000 (0:00:00.051)       0:02:36.796 *********",
                                "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 20 May 2026  13:49:13 +0000 (0:00:00.037)       0:02:36.834 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Wednesday 20 May 2026  13:49:13 +0000 (0:00:00.827)       0:02:37.662 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 20 May 2026  13:49:17 +0000 (0:00:03.134)       0:02:40.796 *********",
                                "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 20 May 2026  13:49:17 +0000 (0:00:00.041)       0:02:40.838 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************",
                                "Wednesday 20 May 2026  13:49:17 +0000 (0:00:00.748)       0:02:41.587 *********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************",
                                "Wednesday 20 May 2026  13:49:18 +0000 (0:00:00.898)       0:02:42.485 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Wednesday 20 May 2026  13:49:20 +0000 (0:00:02.166)       0:02:44.652 *********",
                                "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 20 May 2026  13:49:20 +0000 (0:00:00.030)       0:02:44.683 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************",
                                "Wednesday 20 May 2026  13:49:21 +0000 (0:00:00.591)       0:02:45.274 *********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************",
                                "Wednesday 20 May 2026  13:49:51 +0000 (0:00:30.005)       0:03:15.280 *********",
                                "changed: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=118  changed=54   unreachable=0    failed=0    skipped=34   rescued=0    ignored=3",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 20 May 2026  13:49:52 +0000 (0:00:00.895)       0:03:16.176 *********",
                                "===============================================================================",
                                "Install Debian packages ------------------------------------------------ 35.65s",
                                "vexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 30.01s",
                                "vexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 29.85s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 7.38s",
                                "vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems --- 7.27s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.97s",
                                "vexxhost.kubernetes.kubelet : Install additional packages --------------- 3.62s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.17s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.13s",
                                "Gathering Facts --------------------------------------------------------- 2.35s",
                                "vexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.17s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.14s",
                                "vexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 1.89s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.76s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.70s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.67s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.53s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.49s",
                                "vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.46s",
                                "vexxhost.containers.cni_plugins : Enable kernel modules in runtime ------ 1.39s",
                                "INFO     [secretgen-controller > prepare] Executed: Successful",
                                "INFO     [secretgen-controller > converge] Executing",
                                "",
                                "PLAY [Deploy \"secretgen-controller\"] *******************************************",
                                "",
                                "TASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****",
                                "Wednesday 20 May 2026  13:49:53 +0000 (0:00:00.013)       0:00:00.013 *********",
                                "[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.",
                                "[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.",
                                "[DEPRECATION WARNING]: Direct access to the `environment` attribute is deprecated. This feature will be removed from ansible-core version 2.23. Consider using `copy_with_new_env` or passing `overrides` to `template`.",
                                "changed: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 20 May 2026  13:49:54 +0000 (0:00:01.465)       0:00:01.478 *********",
                                "===============================================================================",
                                "atmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.47s",
                                "INFO     [secretgen-controller > converge] Executed: Successful",
                                "INFO     [secretgen-controller > idempotence] Executing",
                                "",
                                "PLAY [Deploy \"secretgen-controller\"] *******************************************",
                                "",
                                "TASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****",
                                "Wednesday 20 May 2026  13:49:56 +0000 (0:00:00.013)       0:00:00.013 *********",
                                "[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.",
                                "[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.",
                                "[DEPRECATION WARNING]: Direct access to the `environment` attribute is deprecated. This feature will be removed from ansible-core version 2.23. Consider using `copy_with_new_env` or passing `overrides` to `template`.",
                                "ok: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 20 May 2026  13:49:57 +0000 (0:00:01.435)       0:00:01.449 *********",
                                "===============================================================================",
                                "atmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.44s",
                                "INFO     [secretgen-controller > idempotence] Executed: Successful",
                                "INFO     [secretgen-controller > side_effect] Executing",
                                "WARNING  [secretgen-controller > side_effect] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > verify] Executing",
                                "",
                                "PLAY [Verify] ******************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Wednesday 20 May 2026  13:49:58 +0000 (0:00:00.009)       0:00:00.009 *********",
                                "[WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller]",
                                "",
                                "TASK [Wait for secretgen-controller deployment to be available] ****************",
                                "Wednesday 20 May 2026  13:50:00 +0000 (0:00:02.321)       0:00:02.331 *********",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not work.",
                                "ok: [controller]",
                                "",
                                "TASK [Create a test Password resource] *****************************************",
                                "Wednesday 20 May 2026  13:50:01 +0000 (0:00:00.973)       0:00:03.305 *********",
                                "changed: [controller]",
                                "",
                                "TASK [Wait for test-password secret to be generated] ***************************",
                                "Wednesday 20 May 2026  13:50:02 +0000 (0:00:00.994)       0:00:04.299 *********",
                                "ok: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Wednesday 20 May 2026  13:50:03 +0000 (0:00:00.790)       0:00:05.089 *********",
                                "===============================================================================",
                                "Gathering Facts --------------------------------------------------------- 2.32s",
                                "Create a test Password resource ----------------------------------------- 0.99s",
                                "Wait for secretgen-controller deployment to be available ---------------- 0.97s",
                                "Wait for test-password secret to be generated --------------------------- 0.79s",
                                "INFO     [secretgen-controller > verify] Executed: Successful",
                                "INFO     [secretgen-controller > cleanup] Executing",
                                "WARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > destroy] Executing",
                                "WARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [secretgen-controller > destroy] Executed: Successful",
                                "WARNING  Molecule executed 1 scenario (1 missing files)"
                            ],
                            "zuul_log_id": "0242ac17-0010-10f0-1963-000000000006-1-controller"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:50:04.052239Z",
                            "start": "2026-05-20T13:46:07.059652Z"
                        },
                        "id": "0242ac17-0010-10f0-1963-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": "github.com/vexxhost/zuul-config/playbooks/base/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-05-20T13:50:08.170452Z",
                    "start": "2026-05-20T13:50:04.721903Z"
                },
                "id": "0242ac17-0010-d7b4-9171-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-d7b4-9171-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:50:04.768555Z",
                            "start": "2026-05-20T13:50:04.733121Z"
                        },
                        "id": "0242ac17-0010-d7b4-9171-000000000008",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d7b4-9171-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:50:04.825150Z",
                            "start": "2026-05-20T13:50:04.778977Z"
                        },
                        "id": "0242ac17-0010-d7b4-9171-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/3a284d01350c4e47863191c38387b0c3/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d7b4-9171-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:50:05.744806Z",
                            "start": "2026-05-20T13:50:04.829884Z"
                        },
                        "id": "0242ac17-0010-d7b4-9171-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@199.204.45.44:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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@199.204.45.44:/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/3a284d01350c4e47863191c38387b0c3/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@199.204.45.44:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.44:/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/3a284d01350c4e47863191c38387b0c3/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.44:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.44:/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/3a284d01350c4e47863191c38387b0c3/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d7b4-9171-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:50:07.290558Z",
                            "start": "2026-05-20T13:50:05.754565Z"
                        },
                        "id": "0242ac17-0010-d7b4-9171-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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/artifacts/* /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.005784",
                                    "end": "2026-05-20 13:50:07.650724",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/artifacts/* /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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-05-20 13:50:07.644940",
                                    "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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/docs/* /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.007369",
                                    "end": "2026-05-20 13:50:08.124735",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/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/3a284d01350c4e47863191c38387b0c3/work/docs/* /var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/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-05-20 13:50:08.117366",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-d7b4-9171-00000000000f",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:50:08.170452Z",
                            "start": "2026-05-20T13:50:07.306019Z"
                        },
                        "id": "0242ac17-0010-d7b4-9171-000000000011",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-05-20T13:50:08.649290Z",
                    "start": "2026-05-20T13:50:08.183890Z"
                },
                "id": "0242ac17-0010-d7b4-9171-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDO+DbsHEID68KMXXXOdJYPaLxLNccrSF9sc4U8/YTmZLn9MTr6s6DXRZkUPUOmd6r4r6YIFiA25zuiaowkWATZvx1WnrO/icJLe+Wy8lQUKaPvzicDtfHpiQfoFXWvG/KSWTiJ5ZqrmzGhDBfjFp3KiTSzfishVqDUd4VuPc75bkkKMH5IhXVFdiOA94cmjyvrIukNUFdONxlQV7h+whGgt778sWENO4NAo69nS1dqarq7xkC337BBmSbB7ejDyAxbjGk03jX/gSQSdE89MywR7TUOty5zCswJKjJqkXddFsUCNi1N1un35wKg5U2sDIgKCqFLLHchCKmitpzw2fKlXXM6lxHziKipeVa4i1ZglXvGWoi7pXqiYrbJ5e0C7SAUSXc9Mz2iHTvchZ3SDBbjmijZhSfQmRKlKL9A9xCPW2oVvoL3TZy75LiV+pLlioWkRARWZCfNJT01MOyaUti6+pqBD5FruowAU6CUe7kefBBFc6J4XxbzNwvFWitz9dM= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQDO+DbsHEID68KMXXXOdJYPaLxLNccrSF9sc4U8/YTmZLn9MTr6s6DXRZkUPUOmd6r4r6YIFiA25zuiaowkWATZvx1WnrO/icJLe+Wy8lQUKaPvzicDtfHpiQfoFXWvG/KSWTiJ5ZqrmzGhDBfjFp3KiTSzfishVqDUd4VuPc75bkkKMH5IhXVFdiOA94cmjyvrIukNUFdONxlQV7h+whGgt778sWENO4NAo69nS1dqarq7xkC337BBmSbB7ejDyAxbjGk03jX/gSQSdE89MywR7TUOty5zCswJKjJqkXddFsUCNi1N1un35wKg5U2sDIgKCqFLLHchCKmitpzw2fKlXXM6lxHziKipeVa4i1ZglXvGWoi7pXqiYrbJ5e0C7SAUSXc9Mz2iHTvchZ3SDBbjmijZhSfQmRKlKL9A9xCPW2oVvoL3TZy75LiV+pLlioWkRARWZCfNJT01MOyaUti6+pqBD5FruowAU6CUe7kefBBFc6J4XxbzNwvFWitz9dM= 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-d7b4-9171-000000000016",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/3a284d01350c4e47863191c38387b0c3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-20T13:50:08.649290Z",
                            "start": "2026-05-20T13:50:08.193409Z"
                        },
                        "id": "0242ac17-0010-d7b4-9171-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
}
]
