[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-07-17T00:16:26.534609Z",
                    "start": "2026-07-17T00:16:24.163436Z"
                },
                "id": "0242ac17-0010-1780-8eb0-000000000004",
                "name": "localhost"
            },
            "tasks": [
                {
                    "hosts": {
                        "localhost": {
                            "action": "gather_facts",
                            "ansible_facts": {
                                "ansible_apparmor": {
                                    "status": "disabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "NA",
                                "ansible_bios_vendor": "NA",
                                "ansible_bios_version": "NA",
                                "ansible_board_asset_tag": "NA",
                                "ansible_board_name": "NA",
                                "ansible_board_serial": "NA",
                                "ansible_board_vendor": "NA",
                                "ansible_board_version": "NA",
                                "ansible_chassis_asset_tag": "NA",
                                "ansible_chassis_serial": "NA",
                                "ansible_chassis_vendor": "NA",
                                "ansible_chassis_version": "NA",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": "ttyS0",
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_date_time": {
                                    "date": "2026-07-17",
                                    "day": "17",
                                    "epoch": "1784247384",
                                    "epoch_int": "1784247384",
                                    "hour": "00",
                                    "iso8601": "2026-07-17T00:16:24Z",
                                    "iso8601_basic": "20260717T001624947673",
                                    "iso8601_basic_short": "20260717T001624",
                                    "iso8601_micro": "2026-07-17T00:16:24.947673Z",
                                    "minute": "16",
                                    "month": "07",
                                    "second": "24",
                                    "time": "00:16:24",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Friday",
                                    "weekday_number": "5",
                                    "weeknumber": "28",
                                    "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/3f04219cc3864aa3bc0a73187c80bad4/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work",
                                    "HOSTNAME": "2d72f0692154",
                                    "KUBECONFIG": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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": "3243360",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-luKe792gTVBR/agent.3243359",
                                    "TMP": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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.9296875,
                                    "1m": 3.96142578125,
                                    "5m": 3.056640625
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 5571,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 14733,
                                        "used": 17357
                                    },
                                    "real": {
                                        "free": 5571,
                                        "total": 32090,
                                        "used": 26519
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/kube",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 87885678,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 176055039,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 37979671,
                                        "inode_total": 67108864,
                                        "inode_used": 29129193,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 359979737088,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8599571,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32002009,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16659412,
                                        "inode_total": 20643840,
                                        "inode_used": 3984428,
                                        "mount": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35223842816,
                                        "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": 47911114,
                                "ansible_user_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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-07-17T00:16:25.014041Z",
                            "start": "2026-07-17T00:16:24.170763Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-00000000002c",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:25.039961Z",
                            "start": "2026-07-17T00:16:25.019258Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-00000000000a",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "3f0/oss/3f04219cc3864aa3bc0a73187c80bad4"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000056",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:25.081542Z",
                            "start": "2026-07-17T00:16:25.051874Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-000000000058",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.18\nJob: ansible-collection-kubernetes-molecule-cluster-upgrade\nPipeline: check\nExecutor: 2d72f0692154\nTriggered by: https://github.com/vexxhost/ansible-collection-kubernetes/pull/291\nEvent ID: 7fa73510-8174-11f1-9766-26d8aa458930\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:25.133970Z",
                            "start": "2026-07-17T00:16:25.089313Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-00000000000b",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-1\nHostname: np0000185617\nUsername: zuul\nDistro: Debian 13.6\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.204.45.238\n",
                                    "zj_item": "controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-2\nHostname: np0000185618\nUsername: zuul\nDistro: Debian 13.6\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.204.45.77\n",
                                    "zj_item": "controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-3\nHostname: np0000185619\nUsername: zuul\nDistro: Debian 13.6\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.204.45.156\n",
                                    "zj_item": "controller-3"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:25.307267Z",
                            "start": "2026-07-17T00:16:25.137811Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-00000000000c",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:25.699364Z",
                            "start": "2026-07-17T00:16:25.317843Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-000000000011",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "01993d4f311b0677a9210e2d6da5b5e9d7a69b75",
                            "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "01993d4f311b0677a9210e2d6da5b5e9d7a69b75",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/.ansible/tmp/ansible-tmp-1784247385.7363434-84-114911709937245/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "0967f6920ef72e3fdfc4406e7f781313",
                            "mode": "0644",
                            "owner": "root",
                            "size": 37554,
                            "src": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/.ansible/tmp/ansible-tmp-1784247385.7363434-84-114911709937245/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:26.534609Z",
                            "start": "2026-07-17T00:16:25.707983Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-000000000012",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-07-17T00:16:33.280315Z",
                    "start": "2026-07-17T00:16:26.543522Z"
                },
                "id": "0242ac17-0010-1780-8eb0-000000000013",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "stat",
                            "changed": false,
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:26.812745Z",
                            "start": "2026-07-17T00:16:26.555090Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-00000000001a",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:26.859748Z",
                            "start": "2026-07-17T00:16:26.821488Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-00000000001b",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.427364",
                            "end": "2026-07-17 00:16:27.690102",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_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-1780-8eb0-0000000000a6-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:16:27.262738",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa.pub\nThe key fingerprint is:\nSHA256:7F1e+UGOVxR2IHuISR069oL5K9SHRS9rYPHwjGGe28M zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|          ..o..++|\n|         .=+o+...|\n|         o*@o....|\n|       . +*o*.=..|\n|        So.Bo+o+ |\n|       ..o++E....|\n|       .. oo..  .|\n|        .  .     |\n|         ..      |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:7F1e+UGOVxR2IHuISR069oL5K9SHRS9rYPHwjGGe28M zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|          ..o..++|",
                                "|         .=+o+...|",
                                "|         o*@o....|",
                                "|       . +*o*.=..|",
                                "|        So.Bo+o+ |",
                                "|       ..o++E....|",
                                "|       .. oo..  .|",
                                "|        .  .     |",
                                "|         ..      |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0010-1780-8eb0-0000000000a6-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:27.733893Z",
                            "start": "2026-07-17T00:16:26.882177Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000a6",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:27.787482Z",
                            "start": "2026-07-17T00:16:27.739044Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000a7",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:27.854578Z",
                            "start": "2026-07-17T00:16:27.814160Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000d4",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-2": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-3": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:28.384163Z",
                            "start": "2026-07-17T00:16:27.863236Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000d5",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:28.613296Z",
                            "start": "2026-07-17T00:16:28.389353Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000d6",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "96773dc3c2a147becfc394e76dce9a53adac5ad9",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3f04219cc3864aa3bc0a73187c80bad4_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "96773dc3c2a147becfc394e76dce9a53adac5ad9",
                                    "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-1784247388.6566133-204-65032351852583/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "8b45efeae6d83aa3dfc73ff1b5e7ac1e",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247388.6566133-204-65032351852583/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "96773dc3c2a147becfc394e76dce9a53adac5ad9",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3f04219cc3864aa3bc0a73187c80bad4_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "96773dc3c2a147becfc394e76dce9a53adac5ad9",
                                    "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-1784247388.6673155-205-10877987757850/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "8b45efeae6d83aa3dfc73ff1b5e7ac1e",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247388.6673155-205-10877987757850/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "96773dc3c2a147becfc394e76dce9a53adac5ad9",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3f04219cc3864aa3bc0a73187c80bad4_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "96773dc3c2a147becfc394e76dce9a53adac5ad9",
                                    "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-1784247388.6742797-206-192306112230219/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "8b45efeae6d83aa3dfc73ff1b5e7ac1e",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247388.6742797-206-192306112230219/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:29.160538Z",
                            "start": "2026-07-17T00:16:28.618911Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000d7",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "a6d8f5274fb72a08484018dea9d72c254fad0970",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3f04219cc3864aa3bc0a73187c80bad4_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a6d8f5274fb72a08484018dea9d72c254fad0970",
                                    "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-1784247389.207139-234-23626540891821/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "4b69403b6edc7919c796f3518303cc79",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247389.207139-234-23626540891821/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "a6d8f5274fb72a08484018dea9d72c254fad0970",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3f04219cc3864aa3bc0a73187c80bad4_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a6d8f5274fb72a08484018dea9d72c254fad0970",
                                    "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-1784247389.2080636-235-108769548742275/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "4b69403b6edc7919c796f3518303cc79",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247389.2080636-235-108769548742275/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "a6d8f5274fb72a08484018dea9d72c254fad0970",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "3f04219cc3864aa3bc0a73187c80bad4_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a6d8f5274fb72a08484018dea9d72c254fad0970",
                                    "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-1784247389.2676466-240-84626497612594/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "4b69403b6edc7919c796f3518303cc79",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247389.2676466-240-84626497612594/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:29.737765Z",
                            "start": "2026-07-17T00:16:29.164807Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000d8",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:29.785858Z",
                            "start": "2026-07-17T00:16:29.743331Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000a8",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/etc/zuul/id_rsa"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-0000000000ad",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:30.111447Z",
                            "start": "2026-07-17T00:16:29.792992Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000af",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa"
                            ],
                            "delta": "0:00:00.016430",
                            "end": "2026-07-17 00:16:30.349659",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_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-1780-8eb0-0000000000b5-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:16:30.333229",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/3f04219cc3864aa3bc0a73187c80bad4_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0010-1780-8eb0-0000000000b5-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:30.389018Z",
                            "start": "2026-07-17T00:16:30.133741Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000b5",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        },
                        "controller-2": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        },
                        "controller-3": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:30.681405Z",
                            "start": "2026-07-17T00:16:30.393372Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000b6",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:30.726107Z",
                            "start": "2026-07-17T00:16:30.684890Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-0000000000b7",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        },
                        "controller-2": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        },
                        "controller-3": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:31.059261Z",
                            "start": "2026-07-17T00:16:30.745136Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-00000000001f",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:32.038719Z",
                            "start": "2026-07-17T00:16:31.063758Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-000000000020",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:32.649571Z",
                            "start": "2026-07-17T00:16:32.055888Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-000000000024",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1780-8eb0-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:33.280315Z",
                            "start": "2026-07-17T00:16:32.657474Z"
                        },
                        "id": "0242ac17-0010-1780-8eb0-000000000026",
                        "name": "Ensure Zuul Output directories exist"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 8,
            "failures": 0,
            "ignored": 0,
            "ok": 15,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 5,
            "failures": 0,
            "ignored": 0,
            "ok": 11,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 5,
            "failures": 0,
            "ignored": 0,
            "ok": 11,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "localhost": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 6,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "1",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-jobs/playbooks/molecule/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-07-17T00:16:37.965843Z",
                    "start": "2026-07-17T00:16:34.010372Z"
                },
                "id": "0242ac17-0010-4f72-d24b-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.unarchive",
                            "changed": true,
                            "dest": "/usr/local/bin",
                            "extract_results": {
                                "cmd": [
                                    "/usr/bin/tar",
                                    "--extract",
                                    "-C",
                                    "/usr/local/bin",
                                    "-z",
                                    "--show-transformed-names",
                                    "--strip-components=1",
                                    "-f",
                                    "/home/zuul/.ansible/tmp/ansible-tmp-1784247394.0640273-5-44179871136882/uv-x86_64-unknown-linux-gnupksb58ee.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-1784247394.0640273-5-44179871136882/uv-x86_64-unknown-linux-gnupksb58ee.tar.gz",
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-2": {
                            "action": "ansible.builtin.unarchive",
                            "changed": true,
                            "dest": "/usr/local/bin",
                            "extract_results": {
                                "cmd": [
                                    "/usr/bin/tar",
                                    "--extract",
                                    "-C",
                                    "/usr/local/bin",
                                    "-z",
                                    "--show-transformed-names",
                                    "--strip-components=1",
                                    "-f",
                                    "/home/zuul/.ansible/tmp/ansible-tmp-1784247394.0703588-6-111587507408963/uv-x86_64-unknown-linux-gnu97w1tp66.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-1784247394.0703588-6-111587507408963/uv-x86_64-unknown-linux-gnu97w1tp66.tar.gz",
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-3": {
                            "action": "ansible.builtin.unarchive",
                            "changed": true,
                            "dest": "/usr/local/bin",
                            "extract_results": {
                                "cmd": [
                                    "/usr/bin/tar",
                                    "--extract",
                                    "-C",
                                    "/usr/local/bin",
                                    "-z",
                                    "--show-transformed-names",
                                    "--strip-components=1",
                                    "-f",
                                    "/home/zuul/.ansible/tmp/ansible-tmp-1784247394.075832-7-267032310988298/uv-x86_64-unknown-linux-gnuby48pin8.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-1784247394.075832-7-267032310988298/uv-x86_64-unknown-linux-gnuby48pin8.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-4f72-d24b-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:36.546174Z",
                            "start": "2026-07-17T00:16:34.021412Z"
                        },
                        "id": "0242ac17-0010-4f72-d24b-000000000009",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.013370",
                            "end": "2026-07-17 00:16:36.955323",
                            "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-4f72-d24b-00000000000a-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:16:36.941953",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0010-4f72-d24b-00000000000a-1-controller1"
                        },
                        "controller-2": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.015268",
                            "end": "2026-07-17 00:16:36.961928",
                            "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-4f72-d24b-00000000000a-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:16:36.946660",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0010-4f72-d24b-00000000000a-1-controller2"
                        },
                        "controller-3": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.015067",
                            "end": "2026-07-17 00:16:36.967214",
                            "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-4f72-d24b-00000000000a-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:16:36.952147",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0010-4f72-d24b-00000000000a-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-4f72-d24b-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:37.537802Z",
                            "start": "2026-07-17T00:16:36.593022Z"
                        },
                        "id": "0242ac17-0010-4f72-d24b-00000000000a",
                        "name": "Print version"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "molecule_install_galaxy_sibling_collections",
                            "changed": false,
                            "checkouts": [],
                            "installed": [],
                            "invocation": {
                                "module_args": {
                                    "build_refs": [
                                        {
                                            "branch": "main",
                                            "change": "291",
                                            "change_message": "chore(deps): update dependency ansible-core to v2.20.7 [security]\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| ansible-core | `2.20.1` \u2192 `2.20.7` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-core/2.20.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-core/2.20.1/2.20.7?slim=true) |\n\n---\n\n### ansible-core: Argument injection in ansible-galaxy role install leads to arbitrary code execution\n[CVE-2026-11332](https://nvd.nist.gov/vuln/detail/CVE-2026-11332) / [GHSA-w8p5-mx5w-cpqj](https://redirect.github.com/advisories/GHSA-w8p5-mx5w-cpqj)\n\n<details>\n<summary>More information</summary>\n\n#### Details\nA flaw was found in ansible-core. The ansible-galaxy role install command processes dependency specifications from a role's meta/requirements.yml file. Due to improper neutralization of argument delimiters, a malicious role author can inject arbitrary git configuration flags through the src field. This allows arbitrary code execution on the machine of a user who installs the role via ansible-galaxy role install.\n\n#### Severity\n- CVSS Score: 7.8 / 10 (High)\n- Vector String: `CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H`\n\n#### References\n- [https://nvd.nist.gov/vuln/detail/CVE-2026-11332](https://nvd.nist.gov/vuln/detail/CVE-2026-11332)\n- [https://access.redhat.com/security/cve/CVE-2026-11332](https://access.redhat.com/security/cve/CVE-2026-11332)\n- [https://bugzilla.redhat.com/show_bug.cgi?id=2485379](https://bugzilla.redhat.com/show_bug.cgi?id=2485379)\n- [https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-11332.json](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-11332.json)\n- [https://github.com/ansible/ansible/pull/87070](https://redirect.github.com/ansible/ansible/pull/87070)\n- [https://github.com/ansible/ansible/commit/edee59aa15abcc74d920bb3e9c3835ab8db05a2f](https://redirect.github.com/ansible/ansible/commit/edee59aa15abcc74d920bb3e9c3835ab8db05a2f)\n- [https://github.com/advisories/GHSA-w8p5-mx5w-cpqj](https://redirect.github.com/advisories/GHSA-w8p5-mx5w-cpqj)\n\nThis data is provided by the [GitHub Advisory Database](https://redirect.github.com/advisories/GHSA-w8p5-mx5w-cpqj) ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n### Configuration\n\n\ud83d\udcc5 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n\ud83d\udea6 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n\u267b **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n\ud83d\udd15 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/vexxhost/ansible-collection-kubernetes).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n",
                                            "change_url": "https://github.com/vexxhost/ansible-collection-kubernetes/pull/291",
                                            "commit_id": "f463416576563c4aac2d97e658f1bc130b21ae0b",
                                            "patchset": "f463416576563c4aac2d97e658f1bc130b21ae0b",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/ansible-collection-kubernetes",
                                                "name": "vexxhost/ansible-collection-kubernetes",
                                                "short_name": "ansible-collection-kubernetes",
                                                "src_dir": "src/github.com/vexxhost/ansible-collection-kubernetes"
                                            },
                                            "src_dir": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                            "topic": null
                                        },
                                        {
                                            "branch": "main",
                                            "change": "291",
                                            "change_message": "chore(deps): update dependency ansible-core to v2.20.7 [security]\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| ansible-core | `2.20.1` \u2192 `2.20.7` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-core/2.20.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-core/2.20.1/2.20.7?slim=true) |\n\n---\n\n### ansible-core: Argument injection in ansible-galaxy role install leads to arbitrary code execution\n[CVE-2026-11332](https://nvd.nist.gov/vuln/detail/CVE-2026-11332) / [GHSA-w8p5-mx5w-cpqj](https://redirect.github.com/advisories/GHSA-w8p5-mx5w-cpqj)\n\n<details>\n<summary>More information</summary>\n\n#### Details\nA flaw was found in ansible-core. The ansible-galaxy role install command processes dependency specifications from a role's meta/requirements.yml file. Due to improper neutralization of argument delimiters, a malicious role author can inject arbitrary git configuration flags through the src field. This allows arbitrary code execution on the machine of a user who installs the role via ansible-galaxy role install.\n\n#### Severity\n- CVSS Score: 7.8 / 10 (High)\n- Vector String: `CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H`\n\n#### References\n- [https://nvd.nist.gov/vuln/detail/CVE-2026-11332](https://nvd.nist.gov/vuln/detail/CVE-2026-11332)\n- [https://access.redhat.com/security/cve/CVE-2026-11332](https://access.redhat.com/security/cve/CVE-2026-11332)\n- [https://bugzilla.redhat.com/show_bug.cgi?id=2485379](https://bugzilla.redhat.com/show_bug.cgi?id=2485379)\n- [https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-11332.json](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-11332.json)\n- [https://github.com/ansible/ansible/pull/87070](https://redirect.github.com/ansible/ansible/pull/87070)\n- [https://github.com/ansible/ansible/commit/edee59aa15abcc74d920bb3e9c3835ab8db05a2f](https://redirect.github.com/ansible/ansible/commit/edee59aa15abcc74d920bb3e9c3835ab8db05a2f)\n- [https://github.com/advisories/GHSA-w8p5-mx5w-cpqj](https://redirect.github.com/advisories/GHSA-w8p5-mx5w-cpqj)\n\nThis data is provided by the [GitHub Advisory Database](https://redirect.github.com/advisories/GHSA-w8p5-mx5w-cpqj) ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).\n</details>\n\n---\n\n### Configuration\n\n\ud83d\udcc5 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n\ud83d\udea6 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n\u267b **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n\ud83d\udd15 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/vexxhost/ansible-collection-kubernetes).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n",
                                            "change_url": "https://github.com/vexxhost/ansible-collection-kubernetes/pull/291",
                                            "commit_id": "f463416576563c4aac2d97e658f1bc130b21ae0b",
                                            "patchset": "f463416576563c4aac2d97e658f1bc130b21ae0b",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/ansible-collection-kubernetes",
                                                "name": "vexxhost/ansible-collection-kubernetes",
                                                "short_name": "ansible-collection-kubernetes",
                                                "src_dir": "src/github.com/vexxhost/ansible-collection-kubernetes"
                                            },
                                            "topic": null
                                        }
                                    ],
                                    "collections_path": "/home/zuul/.ansible/collections",
                                    "executable": "uv",
                                    "project_dir": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "projects": [
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/ansible-collection-kubernetes",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "ac716e54b37d81e25d11630655afb66b62751e84",
                                            "name": "vexxhost/ansible-collection-kubernetes",
                                            "required": false,
                                            "short_name": "ansible-collection-kubernetes",
                                            "src_dir": "src/github.com/vexxhost/ansible-collection-kubernetes"
                                        }
                                    ],
                                    "workspace_dir": "/home/zuul"
                                }
                            },
                            "log": [
                                "Skipping ansible.posix: no checked-out sibling",
                                "Skipping community.crypto: no checked-out sibling",
                                "Skipping community.general: no checked-out sibling",
                                "Skipping kubernetes.core: no checked-out sibling",
                                "Skipping vexxhost.containers: no checked-out sibling"
                            ],
                            "msg": "Skipping ansible.posix: no checked-out sibling\nSkipping community.crypto: no checked-out sibling\nSkipping community.general: no checked-out sibling\nSkipping kubernetes.core: no checked-out sibling\nSkipping vexxhost.containers: no checked-out sibling"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:37.965843Z",
                            "start": "2026-07-17T00:16:37.556137Z"
                        },
                        "id": "0242ac17-0010-4f72-d24b-00000000000c",
                        "name": "Install Ansible collection siblings"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 3,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "2",
    "phase": "pre",
    "playbook": "github.com/vexxhost/ansible-collection-kubernetes/test-playbooks/molecule/pre.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-07-17T00:16:46.029364Z",
                    "start": "2026-07-17T00:16:38.688233Z"
                },
                "id": "0242ac17-0010-e620-3e11-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1784247400,
                            "cache_updated": false,
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "only_upgrade": false,
                                    "package": null,
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": true,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            }
                        },
                        "controller-2": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1784247400,
                            "cache_updated": false,
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "only_upgrade": false,
                                    "package": null,
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": true,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            }
                        },
                        "controller-3": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1784247400,
                            "cache_updated": false,
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "only_upgrade": false,
                                    "package": null,
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": true,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:43.728630Z",
                            "start": "2026-07-17T00:16:38.699759Z"
                        },
                        "id": "0242ac17-0010-e620-3e11-000000000006",
                        "name": "Update apt cache"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.service",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"RedHat\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "ansible.builtin.service",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"RedHat\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "ansible.builtin.service",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"RedHat\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:43.774844Z",
                            "start": "2026-07-17T00:16:43.734155Z"
                        },
                        "id": "0242ac17-0010-e620-3e11-000000000007",
                        "name": "Disable firewalld"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.package",
                            "cache_update_time": 1784247400,
                            "cache_updated": false,
                            "changed": true,
                            "diff": {},
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "name": "jq",
                                    "only_upgrade": false,
                                    "package": [
                                        "jq"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": null,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            },
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n  libjq1 libonig5\nThe following NEW packages will be installed:\n  jq libjq1 libonig5\n0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 431 kB of archives.\nAfter this operation, 1265 kB of additional disk space will be used.\nGet:1 http://deb.debian.org/debian trixie/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB]\nGet:2 http://deb.debian.org/debian trixie/main amd64 libjq1 amd64 1.7.1-6+deb13u2 [164 kB]\nGet:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u2 [77.8 kB]\nFetched 431 kB in 0s (14.3 MB/s)\nSelecting previously unselected package libonig5:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 21213 files and directories currently installed.)\r\nPreparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...\r\nUnpacking libonig5:amd64 (6.9.9-1+b1) ...\r\nSelecting previously unselected package libjq1:amd64.\r\nPreparing to unpack .../libjq1_1.7.1-6+deb13u2_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.7.1-6+deb13u2) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.7.1-6+deb13u2_amd64.deb ...\r\nUnpacking jq (1.7.1-6+deb13u2) ...\r\nSetting up libonig5:amd64 (6.9.9-1+b1) ...\r\nSetting up libjq1:amd64 (1.7.1-6+deb13u2) ...\r\nSetting up jq (1.7.1-6+deb13u2) ...\r\nProcessing triggers for libc-bin (2.41-12+deb13u3) ...\r\n",
                            "stdout_lines": [
                                "Reading package lists...",
                                "Building dependency tree...",
                                "Reading state information...",
                                "The following additional packages will be installed:",
                                "  libjq1 libonig5",
                                "The following NEW packages will be installed:",
                                "  jq libjq1 libonig5",
                                "0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.",
                                "Need to get 431 kB of archives.",
                                "After this operation, 1265 kB of additional disk space will be used.",
                                "Get:1 http://deb.debian.org/debian trixie/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB]",
                                "Get:2 http://deb.debian.org/debian trixie/main amd64 libjq1 amd64 1.7.1-6+deb13u2 [164 kB]",
                                "Get:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u2 [77.8 kB]",
                                "Fetched 431 kB in 0s (14.3 MB/s)",
                                "Selecting previously unselected package libonig5:amd64.",
                                "(Reading database ... ",
                                "(Reading database ... 5%",
                                "(Reading database ... 10%",
                                "(Reading database ... 15%",
                                "(Reading database ... 20%",
                                "(Reading database ... 25%",
                                "(Reading database ... 30%",
                                "(Reading database ... 35%",
                                "(Reading database ... 40%",
                                "(Reading database ... 45%",
                                "(Reading database ... 50%",
                                "(Reading database ... 55%",
                                "(Reading database ... 60%",
                                "(Reading database ... 65%",
                                "(Reading database ... 70%",
                                "(Reading database ... 75%",
                                "(Reading database ... 80%",
                                "(Reading database ... 85%",
                                "(Reading database ... 90%",
                                "(Reading database ... 95%",
                                "(Reading database ... 100%",
                                "(Reading database ... 21213 files and directories currently installed.)",
                                "Preparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...",
                                "Unpacking libonig5:amd64 (6.9.9-1+b1) ...",
                                "Selecting previously unselected package libjq1:amd64.",
                                "Preparing to unpack .../libjq1_1.7.1-6+deb13u2_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.7.1-6+deb13u2) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.7.1-6+deb13u2_amd64.deb ...",
                                "Unpacking jq (1.7.1-6+deb13u2) ...",
                                "Setting up libonig5:amd64 (6.9.9-1+b1) ...",
                                "Setting up libjq1:amd64 (1.7.1-6+deb13u2) ...",
                                "Setting up jq (1.7.1-6+deb13u2) ...",
                                "Processing triggers for libc-bin (2.41-12+deb13u3) ..."
                            ]
                        },
                        "controller-2": {
                            "action": "ansible.builtin.package",
                            "cache_update_time": 1784247400,
                            "cache_updated": false,
                            "changed": true,
                            "diff": {},
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "name": "jq",
                                    "only_upgrade": false,
                                    "package": [
                                        "jq"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": null,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            },
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n  libjq1 libonig5\nThe following NEW packages will be installed:\n  jq libjq1 libonig5\n0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 431 kB of archives.\nAfter this operation, 1265 kB of additional disk space will be used.\nGet:1 http://deb.debian.org/debian trixie/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB]\nGet:2 http://deb.debian.org/debian trixie/main amd64 libjq1 amd64 1.7.1-6+deb13u2 [164 kB]\nGet:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u2 [77.8 kB]\nFetched 431 kB in 0s (9175 kB/s)\nSelecting previously unselected package libonig5:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 21213 files and directories currently installed.)\r\nPreparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...\r\nUnpacking libonig5:amd64 (6.9.9-1+b1) ...\r\nSelecting previously unselected package libjq1:amd64.\r\nPreparing to unpack .../libjq1_1.7.1-6+deb13u2_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.7.1-6+deb13u2) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.7.1-6+deb13u2_amd64.deb ...\r\nUnpacking jq (1.7.1-6+deb13u2) ...\r\nSetting up libonig5:amd64 (6.9.9-1+b1) ...\r\nSetting up libjq1:amd64 (1.7.1-6+deb13u2) ...\r\nSetting up jq (1.7.1-6+deb13u2) ...\r\nProcessing triggers for libc-bin (2.41-12+deb13u3) ...\r\n",
                            "stdout_lines": [
                                "Reading package lists...",
                                "Building dependency tree...",
                                "Reading state information...",
                                "The following additional packages will be installed:",
                                "  libjq1 libonig5",
                                "The following NEW packages will be installed:",
                                "  jq libjq1 libonig5",
                                "0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.",
                                "Need to get 431 kB of archives.",
                                "After this operation, 1265 kB of additional disk space will be used.",
                                "Get:1 http://deb.debian.org/debian trixie/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB]",
                                "Get:2 http://deb.debian.org/debian trixie/main amd64 libjq1 amd64 1.7.1-6+deb13u2 [164 kB]",
                                "Get:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u2 [77.8 kB]",
                                "Fetched 431 kB in 0s (9175 kB/s)",
                                "Selecting previously unselected package libonig5:amd64.",
                                "(Reading database ... ",
                                "(Reading database ... 5%",
                                "(Reading database ... 10%",
                                "(Reading database ... 15%",
                                "(Reading database ... 20%",
                                "(Reading database ... 25%",
                                "(Reading database ... 30%",
                                "(Reading database ... 35%",
                                "(Reading database ... 40%",
                                "(Reading database ... 45%",
                                "(Reading database ... 50%",
                                "(Reading database ... 55%",
                                "(Reading database ... 60%",
                                "(Reading database ... 65%",
                                "(Reading database ... 70%",
                                "(Reading database ... 75%",
                                "(Reading database ... 80%",
                                "(Reading database ... 85%",
                                "(Reading database ... 90%",
                                "(Reading database ... 95%",
                                "(Reading database ... 100%",
                                "(Reading database ... 21213 files and directories currently installed.)",
                                "Preparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...",
                                "Unpacking libonig5:amd64 (6.9.9-1+b1) ...",
                                "Selecting previously unselected package libjq1:amd64.",
                                "Preparing to unpack .../libjq1_1.7.1-6+deb13u2_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.7.1-6+deb13u2) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.7.1-6+deb13u2_amd64.deb ...",
                                "Unpacking jq (1.7.1-6+deb13u2) ...",
                                "Setting up libonig5:amd64 (6.9.9-1+b1) ...",
                                "Setting up libjq1:amd64 (1.7.1-6+deb13u2) ...",
                                "Setting up jq (1.7.1-6+deb13u2) ...",
                                "Processing triggers for libc-bin (2.41-12+deb13u3) ..."
                            ]
                        },
                        "controller-3": {
                            "action": "ansible.builtin.package",
                            "cache_update_time": 1784247400,
                            "cache_updated": false,
                            "changed": true,
                            "diff": {},
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "name": "jq",
                                    "only_upgrade": false,
                                    "package": [
                                        "jq"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": null,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            },
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n  libjq1 libonig5\nThe following NEW packages will be installed:\n  jq libjq1 libonig5\n0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 431 kB of archives.\nAfter this operation, 1265 kB of additional disk space will be used.\nGet:1 http://deb.debian.org/debian trixie/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB]\nGet:2 http://deb.debian.org/debian trixie/main amd64 libjq1 amd64 1.7.1-6+deb13u2 [164 kB]\nGet:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u2 [77.8 kB]\nFetched 431 kB in 0s (15.5 MB/s)\nSelecting previously unselected package libonig5:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 21213 files and directories currently installed.)\r\nPreparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...\r\nUnpacking libonig5:amd64 (6.9.9-1+b1) ...\r\nSelecting previously unselected package libjq1:amd64.\r\nPreparing to unpack .../libjq1_1.7.1-6+deb13u2_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.7.1-6+deb13u2) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.7.1-6+deb13u2_amd64.deb ...\r\nUnpacking jq (1.7.1-6+deb13u2) ...\r\nSetting up libonig5:amd64 (6.9.9-1+b1) ...\r\nSetting up libjq1:amd64 (1.7.1-6+deb13u2) ...\r\nSetting up jq (1.7.1-6+deb13u2) ...\r\nProcessing triggers for libc-bin (2.41-12+deb13u3) ...\r\n",
                            "stdout_lines": [
                                "Reading package lists...",
                                "Building dependency tree...",
                                "Reading state information...",
                                "The following additional packages will be installed:",
                                "  libjq1 libonig5",
                                "The following NEW packages will be installed:",
                                "  jq libjq1 libonig5",
                                "0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.",
                                "Need to get 431 kB of archives.",
                                "After this operation, 1265 kB of additional disk space will be used.",
                                "Get:1 http://deb.debian.org/debian trixie/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB]",
                                "Get:2 http://deb.debian.org/debian trixie/main amd64 libjq1 amd64 1.7.1-6+deb13u2 [164 kB]",
                                "Get:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u2 [77.8 kB]",
                                "Fetched 431 kB in 0s (15.5 MB/s)",
                                "Selecting previously unselected package libonig5:amd64.",
                                "(Reading database ... ",
                                "(Reading database ... 5%",
                                "(Reading database ... 10%",
                                "(Reading database ... 15%",
                                "(Reading database ... 20%",
                                "(Reading database ... 25%",
                                "(Reading database ... 30%",
                                "(Reading database ... 35%",
                                "(Reading database ... 40%",
                                "(Reading database ... 45%",
                                "(Reading database ... 50%",
                                "(Reading database ... 55%",
                                "(Reading database ... 60%",
                                "(Reading database ... 65%",
                                "(Reading database ... 70%",
                                "(Reading database ... 75%",
                                "(Reading database ... 80%",
                                "(Reading database ... 85%",
                                "(Reading database ... 90%",
                                "(Reading database ... 95%",
                                "(Reading database ... 100%",
                                "(Reading database ... 21213 files and directories currently installed.)",
                                "Preparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...",
                                "Unpacking libonig5:amd64 (6.9.9-1+b1) ...",
                                "Selecting previously unselected package libjq1:amd64.",
                                "Preparing to unpack .../libjq1_1.7.1-6+deb13u2_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.7.1-6+deb13u2) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.7.1-6+deb13u2_amd64.deb ...",
                                "Unpacking jq (1.7.1-6+deb13u2) ...",
                                "Setting up libonig5:amd64 (6.9.9-1+b1) ...",
                                "Setting up libjq1:amd64 (1.7.1-6+deb13u2) ...",
                                "Setting up jq (1.7.1-6+deb13u2) ...",
                                "Processing triggers for libc-bin (2.41-12+deb13u3) ..."
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:46.029364Z",
                            "start": "2026-07-17T00:16:43.783968Z"
                        },
                        "id": "0242ac17-0010-e620-3e11-000000000008",
                        "name": "Install \"jq\" for log collection"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 1,
            "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-07-17T00:19:19.026780Z",
                    "start": "2026-07-17T00:16:46.774332Z"
                },
                "id": "0242ac17-0010-7e63-03a3-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.stat",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": true,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "src/github.com/vexxhost/ansible-collection-kubernetes"
                                        }
                                    },
                                    "item": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "stat": {
                                        "atime": 1784247391.8881443,
                                        "attr_flags": "e",
                                        "attributes": [
                                            "extents"
                                        ],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "unknown",
                                        "ctime": 1784247391.9121442,
                                        "dev": 65025,
                                        "device_type": 0,
                                        "executable": true,
                                        "exists": true,
                                        "gid": 1000,
                                        "gr_name": "zuul",
                                        "inode": 518935,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": true,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": false,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "unknown",
                                        "mode": "0755",
                                        "mtime": 1784247374.1318429,
                                        "nlink": 14,
                                        "path": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                        "pw_name": "zuul",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 4096,
                                        "uid": 1000,
                                        "version": "1472965041",
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": true,
                                        "xoth": true,
                                        "xusr": true
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": true,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "src/github.com/vexxhost/ansible-collection-kubernetes/molecule/cluster-upgrade/inventory"
                                        }
                                    },
                                    "item": "src/github.com/vexxhost/ansible-collection-kubernetes/molecule/cluster-upgrade/inventory",
                                    "stat": {
                                        "exists": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": true,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/inventory"
                                        }
                                    },
                                    "item": "src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/inventory",
                                    "stat": {
                                        "exists": false
                                    }
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:47.526993Z",
                            "start": "2026-07-17T00:16:46.786602Z"
                        },
                        "id": "0242ac17-0010-7e63-03a3-000000000006",
                        "name": "Check inventory directories"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "checksum": "01993d4f311b0677a9210e2d6da5b5e9d7a69b75",
                                    "dest": "src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml",
                                    "diff": [],
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_original_basename": "inventory.yaml",
                                            "attributes": null,
                                            "backup": false,
                                            "checksum": "01993d4f311b0677a9210e2d6da5b5e9d7a69b75",
                                            "content": null,
                                            "dest": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                            "directory_mode": null,
                                            "follow": false,
                                            "force": true,
                                            "group": null,
                                            "local_follow": null,
                                            "mode": "0644",
                                            "owner": null,
                                            "remote_src": null,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247407.600728-9-135199187529244/source",
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/ansible-collection-kubernetes"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                        "stat": {
                                            "atime": 1784247391.8881443,
                                            "attr_flags": "e",
                                            "attributes": [
                                                "extents"
                                            ],
                                            "block_size": 4096,
                                            "blocks": 8,
                                            "charset": "unknown",
                                            "ctime": 1784247391.9121442,
                                            "dev": 65025,
                                            "device_type": 0,
                                            "executable": true,
                                            "exists": true,
                                            "gid": 1000,
                                            "gr_name": "zuul",
                                            "inode": 518935,
                                            "isblk": false,
                                            "ischr": false,
                                            "isdir": true,
                                            "isfifo": false,
                                            "isgid": false,
                                            "islnk": false,
                                            "isreg": false,
                                            "issock": false,
                                            "isuid": false,
                                            "mimetype": "unknown",
                                            "mode": "0755",
                                            "mtime": 1784247374.1318429,
                                            "nlink": 14,
                                            "path": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                            "pw_name": "zuul",
                                            "readable": true,
                                            "rgrp": true,
                                            "roth": true,
                                            "rusr": true,
                                            "size": 4096,
                                            "uid": 1000,
                                            "version": "1472965041",
                                            "wgrp": false,
                                            "woth": false,
                                            "writeable": true,
                                            "wusr": true,
                                            "xgrp": true,
                                            "xoth": true,
                                            "xusr": true
                                        }
                                    },
                                    "md5sum": "0967f6920ef72e3fdfc4406e7f781313",
                                    "mode": "0644",
                                    "owner": "zuul",
                                    "size": 37554,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784247407.600728-9-135199187529244/source",
                                    "state": "file",
                                    "uid": 1000
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/ansible-collection-kubernetes/molecule/cluster-upgrade/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/ansible-collection-kubernetes/molecule/cluster-upgrade/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:48.474205Z",
                            "start": "2026-07-17T00:16:47.531840Z"
                        },
                        "id": "0242ac17-0010-7e63-03a3-000000000007",
                        "name": "Copy inventory file for Zuul"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.replace",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml",
                                            "regexp": "(^\\s*ansible_host:\\s*).*$",
                                            "replace": "\\1\"{{ nodepool.private_ipv4 }}\"",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/ansible-collection-kubernetes"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                        "stat": {
                                            "atime": 1784247391.8881443,
                                            "attr_flags": "e",
                                            "attributes": [
                                                "extents"
                                            ],
                                            "block_size": 4096,
                                            "blocks": 8,
                                            "charset": "unknown",
                                            "ctime": 1784247391.9121442,
                                            "dev": 65025,
                                            "device_type": 0,
                                            "executable": true,
                                            "exists": true,
                                            "gid": 1000,
                                            "gr_name": "zuul",
                                            "inode": 518935,
                                            "isblk": false,
                                            "ischr": false,
                                            "isdir": true,
                                            "isfifo": false,
                                            "isgid": false,
                                            "islnk": false,
                                            "isreg": false,
                                            "issock": false,
                                            "isuid": false,
                                            "mimetype": "unknown",
                                            "mode": "0755",
                                            "mtime": 1784247374.1318429,
                                            "nlink": 14,
                                            "path": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                            "pw_name": "zuul",
                                            "readable": true,
                                            "rgrp": true,
                                            "roth": true,
                                            "rusr": true,
                                            "size": 4096,
                                            "uid": 1000,
                                            "version": "1472965041",
                                            "wgrp": false,
                                            "woth": false,
                                            "writeable": true,
                                            "wusr": true,
                                            "xgrp": true,
                                            "xoth": true,
                                            "xusr": true
                                        }
                                    },
                                    "msg": "3 replacements made",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/ansible-collection-kubernetes/molecule/cluster-upgrade/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/ansible-collection-kubernetes/molecule/cluster-upgrade/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:16:48.849843Z",
                            "start": "2026-07-17T00:16:48.481196Z"
                        },
                        "id": "0242ac17-0010-7e63-03a3-000000000008",
                        "name": "Switch \"ansible_host\" to private IP"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "molecule",
                                "test",
                                "--destroy",
                                "never",
                                "-s",
                                "cluster-upgrade"
                            ],
                            "delta": "0:02:29.326747",
                            "end": "2026-07-17 00:19:18.562285",
                            "failed": true,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run molecule test --destroy never -s cluster-upgrade",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-7e63-03a3-000000000009-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 2,
                            "start": "2026-07-17 00:16:49.235538",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.13.5 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\nDownloading pygments (1.2MiB)\nDownloading cryptography (4.3MiB)\nDownloading ansible-core (2.3MiB)\n Downloading cryptography\n Downloading pygments\n Downloading ansible-core\nInstalled 36 packages in 44ms\nINFO     Collection 'vexxhost.kubernetes' detected.\nINFO     Scenarios will be used from 'extensions/molecule'\n<unknown>:1: SyntaxWarning: invalid decimal literal\nCRITICAL 'extensions/molecule/default/molecule.yml' glob failed.  Exiting.\nINFO     default scenario not found, disabling shared state.\nINFO     [cluster-upgrade > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy\nINFO     [cluster-upgrade > prerun] Performing prerun with role_name_check=0...\nINFO     [cluster-upgrade > dependency] Executing\nWARNING  [cluster-upgrade > dependency] Missing roles requirements file: requirements.yml\nWARNING  [cluster-upgrade > dependency] Missing collections requirements file: collections.yml\nWARNING  [cluster-upgrade > dependency] Executed: 2 missing (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > cleanup] Executing\nWARNING  [cluster-upgrade > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > destroy] Executing\nWARNING  [cluster-upgrade > destroy] Skipping, '--destroy=never' requested.\nINFO     [cluster-upgrade > destroy] Executed: Successful\nINFO     [cluster-upgrade > syntax] Executing\n\nplaybook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml\nINFO     [cluster-upgrade > syntax] Executed: Successful\nINFO     [cluster-upgrade > create] Executing\nWARNING  [cluster-upgrade > create] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > prepare] Executing\n\nPLAY [Prepare] *****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nFriday 17 July 2026  00:17:31 +0000 (0:00:00.029)       0:00:00.029 ***********\n[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.21/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.21/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.21/reference_appendices/interpreter_discovery.html for more information.\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [Install Debian packages] *************************************************\nFriday 17 July 2026  00:17:32 +0000 (0:00:01.184)       0:00:01.213 ***********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nFriday 17 July 2026  00:17:33 +0000 (0:00:01.613)       0:00:02.826 ***********\nok: [controller-3]\nok: [controller-1]\nok: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nFriday 17 July 2026  00:17:36 +0000 (0:00:02.796)       0:00:05.623 ***********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nFriday 17 July 2026  00:17:37 +0000 (0:00:00.439)       0:00:06.062 ***********\nok: [controller-1] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-3] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-2] => (item=/etc/keepalived/keepalived.conf)\nok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-3] => (item=/etc/kubernetes/manifests/haproxy.yaml)\nok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)\n\nTASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****\nFriday 17 July 2026  00:17:38 +0000 (0:00:01.392)       0:00:07.454 ***********\n[ERROR]: Task failed: Module failed: Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3\n\n30     - Restart \"kubelet\" service\n31\n32 - name: Switch API server to run on port 6443\n     ^ column 3\n\nfailed: [controller-2] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\nfailed: [controller-3] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\nfailed: [controller-1] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\n[ERROR]: Task failed: Module failed: Path /etc/kubernetes/controller-manager.conf does not exist !\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3\n\n30     - Restart \"kubelet\" service\n31\n32 - name: Switch API server to run on port 6443\n     ^ column 3\n\nfailed: [controller-1] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\nfailed: [controller-2] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\nfailed: [controller-3] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\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-1] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\nfailed: [controller-2] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\nfailed: [controller-3] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\n...ignoring\n...ignoring\n...ignoring\n\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nFriday 17 July 2026  00:17:39 +0000 (0:00:00.914)       0:00:08.369 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nFriday 17 July 2026  00:17:39 +0000 (0:00:00.388)       0:00:08.757 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nFriday 17 July 2026  00:17:40 +0000 (0:00:00.319)       0:00:09.076 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nFriday 17 July 2026  00:17:40 +0000 (0:00:00.056)       0:00:09.133 ***********\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nFriday 17 July 2026  00:17:40 +0000 (0:00:00.061)       0:00:09.194 ***********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nFriday 17 July 2026  00:17:41 +0000 (0:00:00.920)       0:00:10.115 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nFriday 17 July 2026  00:17:41 +0000 (0:00:00.313)       0:00:10.429 ***********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nFriday 17 July 2026  00:17:41 +0000 (0:00:00.004)       0:00:10.434 ***********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nFriday 17 July 2026  00:17:41 +0000 (0:00:00.001)       0:00:10.436 ***********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nFriday 17 July 2026  00:17:41 +0000 (0:00:00.051)       0:00:10.487 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nFriday 17 July 2026  00:17:42 +0000 (0:00:00.851)       0:00:11.339 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nFriday 17 July 2026  00:17:42 +0000 (0:00:00.416)       0:00:11.755 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nFriday 17 July 2026  00:17:42 +0000 (0:00:00.081)       0:00:11.837 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:17:43 +0000 (0:00:00.362)       0:00:12.199 ***********\nok: [controller-2] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\nok: [controller-1] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nFriday 17 July 2026  00:17:43 +0000 (0:00:00.102)       0:00:12.302 ***********\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-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:17:44 +0000 (0:00:00.814)       0:00:13.116 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nFriday 17 July 2026  00:17:44 +0000 (0:00:00.097)       0:00:13.214 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nFriday 17 July 2026  00:17:44 +0000 (0:00:00.365)       0:00:13.579 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:17:45 +0000 (0:00:00.992)       0:00:14.572 ***********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nFriday 17 July 2026  00:17:45 +0000 (0:00:00.098)       0:00:14.671 ***********\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:17:46 +0000 (0:00:00.886)       0:00:15.558 ***********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nFriday 17 July 2026  00:17:49 +0000 (0:00:03.033)       0:00:18.591 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nFriday 17 July 2026  00:17:49 +0000 (0:00:00.061)       0:00:18.652 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nFriday 17 July 2026  00:17:49 +0000 (0:00:00.053)       0:00:18.706 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nFriday 17 July 2026  00:17:49 +0000 (0:00:00.060)       0:00:18.766 ***********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nFriday 17 July 2026  00:17:55 +0000 (0:00:05.690)       0:00:24.456 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nFriday 17 July 2026  00:17:56 +0000 (0:00:00.699)       0:00:25.156 ***********\nchanged: [controller-1] => (item={'path': '/etc/containerd'})\nchanged: [controller-2] => (item={'path': '/etc/containerd'})\nchanged: [controller-3] => (item={'path': '/etc/containerd'})\nchanged: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nchanged: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nFriday 17 July 2026  00:17:57 +0000 (0:00:01.431)       0:00:26.588 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nFriday 17 July 2026  00:17:58 +0000 (0:00:00.835)       0:00:27.423 ***********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nFriday 17 July 2026  00:17:58 +0000 (0:00:00.007)       0:00:27.431 ***********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nFriday 17 July 2026  00:17:58 +0000 (0:00:00.004)       0:00:27.435 ***********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nFriday 17 July 2026  00:17:58 +0000 (0:00:00.005)       0:00:27.441 ***********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nFriday 17 July 2026  00:17:59 +0000 (0:00:00.835)       0:00:28.276 ***********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nFriday 17 July 2026  00:18:01 +0000 (0:00:01.905)       0:00:30.182 ***********\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nFriday 17 July 2026  00:18:02 +0000 (0:00:00.894)       0:00:31.076 ***********\n[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000185617's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes_upgrade_check/tasks/main.yml:16:3\n\n14\n15 ---\n16 - name: Retrieve the \"kubeadm-config\" ConfigMap\n     ^ column 3\n\nfatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000185617's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\"}\n...ignoring\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***\nFriday 17 July 2026  00:18:02 +0000 (0:00:00.654)       0:00:31.731 ***********\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nFriday 17 July 2026  00:18:02 +0000 (0:00:00.045)       0:00:31.776 ***********\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nFriday 17 July 2026  00:18:02 +0000 (0:00:00.039)       0:00:31.816 ***********\nskipping: [controller-1]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nFriday 17 July 2026  00:18:02 +0000 (0:00:00.045)       0:00:31.861 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nFriday 17 July 2026  00:18:02 +0000 (0:00:00.079)       0:00:31.941 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nFriday 17 July 2026  00:18:03 +0000 (0:00:00.090)       0:00:32.031 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:18:03 +0000 (0:00:00.353)       0:00:32.385 ***********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nFriday 17 July 2026  00:18:03 +0000 (0:00:00.078)       0:00:32.463 ***********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:18:23 +0000 (0:00:20.515)       0:00:52.978 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nFriday 17 July 2026  00:18:24 +0000 (0:00:00.090)       0:00:53.069 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:18:24 +0000 (0:00:00.345)       0:00:53.415 ***********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nFriday 17 July 2026  00:18:24 +0000 (0:00:00.079)       0:00:53.495 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:18:28 +0000 (0:00:03.488)       0:00:56.983 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nFriday 17 July 2026  00:18:28 +0000 (0:00:00.113)       0:00:57.096 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nFriday 17 July 2026  00:18:28 +0000 (0:00:00.064)       0:00:57.160 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nFriday 17 July 2026  00:18:28 +0000 (0:00:00.059)       0:00:57.219 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nFriday 17 July 2026  00:18:28 +0000 (0:00:00.062)       0:00:57.282 ***********\nok: [controller-2]\nok: [controller-3]\nok: [controller-1]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nFriday 17 July 2026  00:18:29 +0000 (0:00:01.017)       0:00:58.300 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nFriday 17 July 2026  00:18:30 +0000 (0:00:00.709)       0:00:59.009 ***********\nok: [controller-1] => (item={'path': '/etc/containerd'})\nok: [controller-2] => (item={'path': '/etc/containerd'})\nok: [controller-3] => (item={'path': '/etc/containerd'})\nok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nFriday 17 July 2026  00:18:31 +0000 (0:00:01.442)       0:01:00.452 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nFriday 17 July 2026  00:18:32 +0000 (0:00:00.770)       0:01:01.222 ***********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nFriday 17 July 2026  00:18:32 +0000 (0:00:00.004)       0:01:01.227 ***********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nFriday 17 July 2026  00:18:32 +0000 (0:00:00.004)       0:01:01.231 ***********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nFriday 17 July 2026  00:18:32 +0000 (0:00:00.004)       0:01:01.235 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nFriday 17 July 2026  00:18:32 +0000 (0:00:00.528)       0:01:01.763 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:18:33 +0000 (0:00:00.322)       0:01:02.085 ***********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nFriday 17 July 2026  00:18:33 +0000 (0:00:00.098)       0:01:02.184 ***********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:18:34 +0000 (0:00:00.815)       0:01:03.000 ***********\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:18:35 +0000 (0:00:01.679)       0:01:04.679 ***********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nFriday 17 July 2026  00:18:35 +0000 (0:00:00.093)       0:01:04.773 ***********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:18:36 +0000 (0:00:00.826)       0:01:05.599 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nFriday 17 July 2026  00:18:38 +0000 (0:00:01.679)       0:01:07.279 ***********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nFriday 17 July 2026  00:18:39 +0000 (0:00:00.728)       0:01:08.007 ***********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nFriday 17 July 2026  00:18:39 +0000 (0:00:00.364)       0:01:08.372 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:18:39 +0000 (0:00:00.340)       0:01:08.712 ***********\nok: [controller-1] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"\n}\nok: [controller-3] => {\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] *******************\nFriday 17 July 2026  00:18:39 +0000 (0:00:00.092)       0:01:08.805 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:18:41 +0000 (0:00:01.231)       0:01:10.036 ***********\nchanged: [controller-2]\nchanged: [controller-1]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nFriday 17 July 2026  00:18:44 +0000 (0:00:02.966)       0:01:13.003 ***********\nok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\nok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\nok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\n\nTASK [vexxhost.containers.cni_plugins : Install additional packages] ***********\nFriday 17 July 2026  00:18:44 +0000 (0:00:00.082)       0:01:13.085 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nFriday 17 July 2026  00:18:45 +0000 (0:00:00.939)       0:01:14.025 ***********\nchanged: [controller-2]\nchanged: [controller-3]\nchanged: [controller-1]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nFriday 17 July 2026  00:18:45 +0000 (0:00:00.422)       0:01:14.447 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nFriday 17 July 2026  00:18:46 +0000 (0:00:00.709)       0:01:15.156 ***********\nchanged: [controller-1] => (item=br_netfilter)\nchanged: [controller-3] => (item=br_netfilter)\nchanged: [controller-2] => (item=br_netfilter)\nok: [controller-1] => (item=ip_tables)\nok: [controller-3] => (item=ip_tables)\nok: [controller-2] => (item=ip_tables)\nchanged: [controller-1] => (item=ip6_tables)\nchanged: [controller-3] => (item=ip6_tables)\nchanged: [controller-2] => (item=ip6_tables)\nchanged: [controller-1] => (item=nf_conntrack)\nchanged: [controller-3] => (item=nf_conntrack)\nchanged: [controller-2] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nFriday 17 July 2026  00:18:47 +0000 (0:00:01.561)       0:01:16.718 ***********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nFriday 17 July 2026  00:18:48 +0000 (0:00:00.335)       0:01:17.054 ***********\nok: [controller-1] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"\n}\nok: [controller-2] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nFriday 17 July 2026  00:18:48 +0000 (0:00:00.077)       0:01:17.131 ***********\nchanged: [controller-3]\nchanged: [controller-1]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nFriday 17 July 2026  00:19:10 +0000 (0:00:22.234)       0:01:39.366 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nFriday 17 July 2026  00:19:10 +0000 (0:00:00.085)       0:01:39.451 ***********\nok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\nok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\nok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\n\nTASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************\nFriday 17 July 2026  00:19:10 +0000 (0:00:00.090)       0:01:39.542 ***********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nFriday 17 July 2026  00:19:10 +0000 (0:00:00.069)       0:01:39.612 ***********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nFriday 17 July 2026  00:19:13 +0000 (0:00:02.795)       0:01:42.407 ***********\nchanged: [controller-1] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-1] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\n\nTASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***\nFriday 17 July 2026  00:19:15 +0000 (0:00:02.063)       0:01:44.471 ***********\nchanged: [controller-1] => (item=/etc/systemd/system/kubelet.service.d)\nchanged: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)\nchanged: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller-1] => (item=/etc/kubernetes)\nok: [controller-3] => (item=/etc/kubernetes)\nok: [controller-2] => (item=/etc/kubernetes)\nok: [controller-1] => (item=/etc/kubernetes/manifests)\nok: [controller-3] => (item=/etc/kubernetes/manifests)\nok: [controller-2] => (item=/etc/kubernetes/manifests)\n\nTASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********\nFriday 17 July 2026  00:19:16 +0000 (0:00:00.852)       0:01:45.323 ***********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nFriday 17 July 2026  00:19:17 +0000 (0:00:00.726)       0:01:46.049 ***********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nFriday 17 July 2026  00:19:17 +0000 (0:00:00.696)       0:01:46.746 ***********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nFriday 17 July 2026  00:19:18 +0000 (0:00:00.408)       0:01:47.155 ***********\n[ERROR]: Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. 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\nA 'when' expression failed.\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\n<<< caused by >>>\n\nConditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. 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-1]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. Conditionals must have a boolean result.\"}\nfatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. Conditionals must have a boolean result.\"}\nfatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. Conditionals must have a boolean result.\"}\n\nPLAY RECAP *********************************************************************\ncontroller-1               : ok=69   changed=30   unreachable=0    failed=1    skipped=17   rescued=0    ignored=2\ncontroller-2               : ok=67   changed=30   unreachable=0    failed=1    skipped=15   rescued=0    ignored=1\ncontroller-3               : ok=67   changed=30   unreachable=0    failed=1    skipped=15   rescued=0    ignored=1\n\n\nTASKS RECAP ********************************************************************\nFriday 17 July 2026  00:19:18 +0000 (0:00:00.063)       0:01:47.218 ***********\n===============================================================================\nvexxhost.containers.download_artifact : Download item ------------------ 22.23s\nvexxhost.containers.download_artifact : Download item ------------------ 20.52s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 5.69s\nvexxhost.containers.download_artifact : Download item ------------------- 3.49s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.03s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.97s\nGathering Facts --------------------------------------------------------- 2.80s\nvexxhost.kubernetes.kubelet : Install additional packages --------------- 2.80s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.06s\nvexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 1.91s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.68s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.68s\nInstall Debian packages ------------------------------------------------- 1.61s\nvexxhost.containers.cni_plugins : Enable kernel modules in runtime ------ 1.56s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.44s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.43s\nvexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.39s\nvexxhost.containers.download_artifact : Download item ------------------- 1.23s\nGathering Facts --------------------------------------------------------- 1.18s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 1.02s\nCRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/prepare.yml\nERROR    [cluster-upgrade > prepare] \u001b[31mExecuted: Failed\u001b[0m\nERROR    Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/prepare.yml",
                            "stdout_lines": [
                                "Using CPython 3.13.5 interpreter at: /usr/bin/python3",
                                "Creating virtual environment at: .venv",
                                "Downloading pygments (1.2MiB)",
                                "Downloading cryptography (4.3MiB)",
                                "Downloading ansible-core (2.3MiB)",
                                " Downloading cryptography",
                                " Downloading pygments",
                                " Downloading ansible-core",
                                "Installed 36 packages in 44ms",
                                "INFO     Collection 'vexxhost.kubernetes' detected.",
                                "INFO     Scenarios will be used from 'extensions/molecule'",
                                "<unknown>:1: SyntaxWarning: invalid decimal literal",
                                "CRITICAL 'extensions/molecule/default/molecule.yml' glob failed.  Exiting.",
                                "INFO     default scenario not found, disabling shared state.",
                                "INFO     [cluster-upgrade > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy",
                                "INFO     [cluster-upgrade > prerun] Performing prerun with role_name_check=0...",
                                "INFO     [cluster-upgrade > dependency] Executing",
                                "WARNING  [cluster-upgrade > dependency] Missing roles requirements file: requirements.yml",
                                "WARNING  [cluster-upgrade > dependency] Missing collections requirements file: collections.yml",
                                "WARNING  [cluster-upgrade > dependency] Executed: 2 missing (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > cleanup] Executing",
                                "WARNING  [cluster-upgrade > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > destroy] Executing",
                                "WARNING  [cluster-upgrade > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [cluster-upgrade > destroy] Executed: Successful",
                                "INFO     [cluster-upgrade > syntax] Executing",
                                "",
                                "playbook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml",
                                "INFO     [cluster-upgrade > syntax] Executed: Successful",
                                "INFO     [cluster-upgrade > create] Executing",
                                "WARNING  [cluster-upgrade > create] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > prepare] Executing",
                                "",
                                "PLAY [Prepare] *****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Friday 17 July 2026  00:17:31 +0000 (0:00:00.029)       0:00:00.029 ***********",
                                "[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.21/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.21/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.21/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install Debian packages] *************************************************",
                                "Friday 17 July 2026  00:17:32 +0000 (0:00:01.184)       0:00:01.213 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Friday 17 July 2026  00:17:33 +0000 (0:00:01.613)       0:00:02.826 ***********",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Friday 17 July 2026  00:17:36 +0000 (0:00:02.796)       0:00:05.623 ***********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Friday 17 July 2026  00:17:37 +0000 (0:00:00.439)       0:00:06.062 ***********",
                                "ok: [controller-1] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-3] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-2] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller-1] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-3] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-2] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-1] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-3] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-2] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****",
                                "Friday 17 July 2026  00:17:38 +0000 (0:00:01.392)       0:00:07.454 ***********",
                                "[ERROR]: Task failed: Module failed: Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3",
                                "",
                                "30     - Restart \"kubelet\" service",
                                "31",
                                "32 - name: Switch API server to run on port 6443",
                                "     ^ column 3",
                                "",
                                "failed: [controller-2] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "failed: [controller-3] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "failed: [controller-1] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "[ERROR]: Task failed: Module failed: Path /etc/kubernetes/controller-manager.conf does not exist !",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kube_vip/tasks/main.yml:32:3",
                                "",
                                "30     - Restart \"kubelet\" service",
                                "31",
                                "32 - name: Switch API server to run on port 6443",
                                "     ^ column 3",
                                "",
                                "failed: [controller-1] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-2] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-3] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "[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-1] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-2] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-3] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "...ignoring",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Friday 17 July 2026  00:17:39 +0000 (0:00:00.914)       0:00:08.369 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Friday 17 July 2026  00:17:39 +0000 (0:00:00.388)       0:00:08.757 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Friday 17 July 2026  00:17:40 +0000 (0:00:00.319)       0:00:09.076 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Friday 17 July 2026  00:17:40 +0000 (0:00:00.056)       0:00:09.133 ***********",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Friday 17 July 2026  00:17:40 +0000 (0:00:00.061)       0:00:09.194 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Friday 17 July 2026  00:17:41 +0000 (0:00:00.920)       0:00:10.115 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Friday 17 July 2026  00:17:41 +0000 (0:00:00.313)       0:00:10.429 ***********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Friday 17 July 2026  00:17:41 +0000 (0:00:00.004)       0:00:10.434 ***********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Friday 17 July 2026  00:17:41 +0000 (0:00:00.001)       0:00:10.436 ***********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Friday 17 July 2026  00:17:41 +0000 (0:00:00.051)       0:00:10.487 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Friday 17 July 2026  00:17:42 +0000 (0:00:00.851)       0:00:11.339 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Friday 17 July 2026  00:17:42 +0000 (0:00:00.416)       0:00:11.755 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Friday 17 July 2026  00:17:42 +0000 (0:00:00.081)       0:00:11.837 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:17:43 +0000 (0:00:00.362)       0:00:12.199 ***********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Friday 17 July 2026  00:17:43 +0000 (0:00:00.102)       0:00:12.302 ***********",
                                "[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-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:17:44 +0000 (0:00:00.814)       0:00:13.116 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Friday 17 July 2026  00:17:44 +0000 (0:00:00.097)       0:00:13.214 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Friday 17 July 2026  00:17:44 +0000 (0:00:00.365)       0:00:13.579 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:17:45 +0000 (0:00:00.992)       0:00:14.572 ***********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Friday 17 July 2026  00:17:45 +0000 (0:00:00.098)       0:00:14.671 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:17:46 +0000 (0:00:00.886)       0:00:15.558 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Friday 17 July 2026  00:17:49 +0000 (0:00:03.033)       0:00:18.591 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Friday 17 July 2026  00:17:49 +0000 (0:00:00.061)       0:00:18.652 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Friday 17 July 2026  00:17:49 +0000 (0:00:00.053)       0:00:18.706 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Friday 17 July 2026  00:17:49 +0000 (0:00:00.060)       0:00:18.766 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Friday 17 July 2026  00:17:55 +0000 (0:00:05.690)       0:00:24.456 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Friday 17 July 2026  00:17:56 +0000 (0:00:00.699)       0:00:25.156 ***********",
                                "changed: [controller-1] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-2] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-3] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "changed: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Friday 17 July 2026  00:17:57 +0000 (0:00:01.431)       0:00:26.588 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Friday 17 July 2026  00:17:58 +0000 (0:00:00.835)       0:00:27.423 ***********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Friday 17 July 2026  00:17:58 +0000 (0:00:00.007)       0:00:27.431 ***********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Friday 17 July 2026  00:17:58 +0000 (0:00:00.004)       0:00:27.435 ***********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Friday 17 July 2026  00:17:58 +0000 (0:00:00.005)       0:00:27.441 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Friday 17 July 2026  00:17:59 +0000 (0:00:00.835)       0:00:28.276 ***********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Friday 17 July 2026  00:18:01 +0000 (0:00:01.905)       0:00:30.182 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Friday 17 July 2026  00:18:02 +0000 (0:00:00.894)       0:00:31.076 ***********",
                                "[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000185617's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes_upgrade_check/tasks/main.yml:16:3",
                                "",
                                "14",
                                "15 ---",
                                "16 - name: Retrieve the \"kubeadm-config\" ConfigMap",
                                "     ^ column 3",
                                "",
                                "fatal: [controller-1]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000185617's Python /usr/bin/python3.13. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\"}",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***",
                                "Friday 17 July 2026  00:18:02 +0000 (0:00:00.654)       0:00:31.731 ***********",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Friday 17 July 2026  00:18:02 +0000 (0:00:00.045)       0:00:31.776 ***********",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Friday 17 July 2026  00:18:02 +0000 (0:00:00.039)       0:00:31.816 ***********",
                                "skipping: [controller-1]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Friday 17 July 2026  00:18:02 +0000 (0:00:00.045)       0:00:31.861 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Friday 17 July 2026  00:18:02 +0000 (0:00:00.079)       0:00:31.941 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Friday 17 July 2026  00:18:03 +0000 (0:00:00.090)       0:00:32.031 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:18:03 +0000 (0:00:00.353)       0:00:32.385 ***********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Friday 17 July 2026  00:18:03 +0000 (0:00:00.078)       0:00:32.463 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:18:23 +0000 (0:00:20.515)       0:00:52.978 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Friday 17 July 2026  00:18:24 +0000 (0:00:00.090)       0:00:53.069 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:18:24 +0000 (0:00:00.345)       0:00:53.415 ***********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubectl\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Friday 17 July 2026  00:18:24 +0000 (0:00:00.079)       0:00:53.495 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:18:28 +0000 (0:00:03.488)       0:00:56.983 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Friday 17 July 2026  00:18:28 +0000 (0:00:00.113)       0:00:57.096 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Friday 17 July 2026  00:18:28 +0000 (0:00:00.064)       0:00:57.160 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Friday 17 July 2026  00:18:28 +0000 (0:00:00.059)       0:00:57.219 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Friday 17 July 2026  00:18:28 +0000 (0:00:00.062)       0:00:57.282 ***********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "ok: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Friday 17 July 2026  00:18:29 +0000 (0:00:01.017)       0:00:58.300 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Friday 17 July 2026  00:18:30 +0000 (0:00:00.709)       0:00:59.009 ***********",
                                "ok: [controller-1] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-2] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-3] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-1] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-1] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Friday 17 July 2026  00:18:31 +0000 (0:00:01.442)       0:01:00.452 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Friday 17 July 2026  00:18:32 +0000 (0:00:00.770)       0:01:01.222 ***********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Friday 17 July 2026  00:18:32 +0000 (0:00:00.004)       0:01:01.227 ***********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Friday 17 July 2026  00:18:32 +0000 (0:00:00.004)       0:01:01.231 ***********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Friday 17 July 2026  00:18:32 +0000 (0:00:00.004)       0:01:01.235 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Friday 17 July 2026  00:18:32 +0000 (0:00:00.528)       0:01:01.763 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:18:33 +0000 (0:00:00.322)       0:01:02.085 ***********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Friday 17 July 2026  00:18:33 +0000 (0:00:00.098)       0:01:02.184 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:18:34 +0000 (0:00:00.815)       0:01:03.000 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:18:35 +0000 (0:00:01.679)       0:01:04.679 ***********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Friday 17 July 2026  00:18:35 +0000 (0:00:00.093)       0:01:04.773 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:18:36 +0000 (0:00:00.826)       0:01:05.599 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Friday 17 July 2026  00:18:38 +0000 (0:00:01.679)       0:01:07.279 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Friday 17 July 2026  00:18:39 +0000 (0:00:00.728)       0:01:08.007 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Friday 17 July 2026  00:18:39 +0000 (0:00:00.364)       0:01:08.372 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:18:39 +0000 (0:00:00.340)       0:01:08.712 ***********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"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] *******************",
                                "Friday 17 July 2026  00:18:39 +0000 (0:00:00.092)       0:01:08.805 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:18:41 +0000 (0:00:01.231)       0:01:10.036 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Friday 17 July 2026  00:18:44 +0000 (0:00:02.966)       0:01:13.003 ***********",
                                "ok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "ok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "ok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Install additional packages] ***********",
                                "Friday 17 July 2026  00:18:44 +0000 (0:00:00.082)       0:01:13.085 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Friday 17 July 2026  00:18:45 +0000 (0:00:00.939)       0:01:14.025 ***********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Friday 17 July 2026  00:18:45 +0000 (0:00:00.422)       0:01:14.447 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Friday 17 July 2026  00:18:46 +0000 (0:00:00.709)       0:01:15.156 ***********",
                                "changed: [controller-1] => (item=br_netfilter)",
                                "changed: [controller-3] => (item=br_netfilter)",
                                "changed: [controller-2] => (item=br_netfilter)",
                                "ok: [controller-1] => (item=ip_tables)",
                                "ok: [controller-3] => (item=ip_tables)",
                                "ok: [controller-2] => (item=ip_tables)",
                                "changed: [controller-1] => (item=ip6_tables)",
                                "changed: [controller-3] => (item=ip6_tables)",
                                "changed: [controller-2] => (item=ip6_tables)",
                                "changed: [controller-1] => (item=nf_conntrack)",
                                "changed: [controller-3] => (item=nf_conntrack)",
                                "changed: [controller-2] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Friday 17 July 2026  00:18:47 +0000 (0:00:01.561)       0:01:16.718 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Friday 17 July 2026  00:18:48 +0000 (0:00:00.335)       0:01:17.054 ***********",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"",
                                "}",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.33.4/bin/linux/amd64/kubelet\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Friday 17 July 2026  00:18:48 +0000 (0:00:00.077)       0:01:17.131 ***********",
                                "changed: [controller-3]",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Friday 17 July 2026  00:19:10 +0000 (0:00:22.234)       0:01:39.366 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Friday 17 July 2026  00:19:10 +0000 (0:00:00.085)       0:01:39.451 ***********",
                                "ok: [controller-1] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "ok: [controller-2] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "ok: [controller-3] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************",
                                "Friday 17 July 2026  00:19:10 +0000 (0:00:00.090)       0:01:39.542 ***********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Friday 17 July 2026  00:19:10 +0000 (0:00:00.069)       0:01:39.612 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Friday 17 July 2026  00:19:13 +0000 (0:00:02.795)       0:01:42.407 ***********",
                                "changed: [controller-1] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-1] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-1] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller-1] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***",
                                "Friday 17 July 2026  00:19:15 +0000 (0:00:02.063)       0:01:44.471 ***********",
                                "changed: [controller-1] => (item=/etc/systemd/system/kubelet.service.d)",
                                "changed: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)",
                                "changed: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller-1] => (item=/etc/kubernetes)",
                                "ok: [controller-3] => (item=/etc/kubernetes)",
                                "ok: [controller-2] => (item=/etc/kubernetes)",
                                "ok: [controller-1] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********",
                                "Friday 17 July 2026  00:19:16 +0000 (0:00:00.852)       0:01:45.323 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Friday 17 July 2026  00:19:17 +0000 (0:00:00.726)       0:01:46.049 ***********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Friday 17 July 2026  00:19:17 +0000 (0:00:00.696)       0:01:46.746 ***********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Friday 17 July 2026  00:19:18 +0000 (0:00:00.408)       0:01:47.155 ***********",
                                "[ERROR]: Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. 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 >>>",
                                "",
                                "A 'when' expression failed.",
                                "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",
                                "",
                                "<<< caused by >>>",
                                "",
                                "Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. 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-1]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. Conditionals must have a boolean result.\"}",
                                "fatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. Conditionals must have a boolean result.\"}",
                                "fatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: A 'when' expression failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:91:11'. Conditionals must have a boolean result.\"}",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller-1               : ok=69   changed=30   unreachable=0    failed=1    skipped=17   rescued=0    ignored=2",
                                "controller-2               : ok=67   changed=30   unreachable=0    failed=1    skipped=15   rescued=0    ignored=1",
                                "controller-3               : ok=67   changed=30   unreachable=0    failed=1    skipped=15   rescued=0    ignored=1",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Friday 17 July 2026  00:19:18 +0000 (0:00:00.063)       0:01:47.218 ***********",
                                "===============================================================================",
                                "vexxhost.containers.download_artifact : Download item ------------------ 22.23s",
                                "vexxhost.containers.download_artifact : Download item ------------------ 20.52s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 5.69s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 3.49s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.03s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.97s",
                                "Gathering Facts --------------------------------------------------------- 2.80s",
                                "vexxhost.kubernetes.kubelet : Install additional packages --------------- 2.80s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.06s",
                                "vexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 1.91s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.68s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.68s",
                                "Install Debian packages ------------------------------------------------- 1.61s",
                                "vexxhost.containers.cni_plugins : Enable kernel modules in runtime ------ 1.56s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.44s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.43s",
                                "vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.39s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.23s",
                                "Gathering Facts --------------------------------------------------------- 1.18s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 1.02s",
                                "CRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/prepare.yml",
                                "ERROR    [cluster-upgrade > prepare] \u001b[31mExecuted: Failed\u001b[0m",
                                "ERROR    Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.Bs5j.cluster-upgrade/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/prepare.yml"
                            ],
                            "zuul_log_id": "0242ac17-0010-7e63-03a3-000000000009-1-controller1"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:19.026780Z",
                            "start": "2026-07-17T00:16:48.901822Z"
                        },
                        "id": "0242ac17-0010-7e63-03a3-000000000009",
                        "name": "Run Molecule scenario"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 2,
            "failures": 1,
            "ignored": 0,
            "ok": 3,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "post",
    "playbook": "github.com/vexxhost/ansible-collection-kubernetes/test-playbooks/molecule/post.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-07-17T00:19:26.585930Z",
                    "start": "2026-07-17T00:19:19.932875Z"
                },
                "id": "0242ac17-0010-7431-fc4b-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/objects/cluster",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/objects/cluster",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/objects/cluster",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/objects/cluster",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/objects/cluster",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/objects/cluster",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/objects/cluster",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/objects/cluster",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/objects/cluster",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/objects/cluster",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/objects/cluster",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/objects/cluster",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:20.525351Z",
                            "start": "2026-07-17T00:19:19.952193Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000000b",
                        "name": "creating directory for cluster scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nexport OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace\nexport PARALLELISM_FACTOR=2\n\nfunction list_objects () {\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"$@\"' _ {}\n}\nexport -f list_objects\n\nfunction name_objects () {\n  export OBJECT=$1\n  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${OBJECT} ${1#*/}\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export OBJECT=${input[0]}\n  export NAME=${input[1]#*/}\n  echo \"${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/cluster/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nlist_objects |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                            "delta": "0:00:00.224218",
                            "end": "2026-07-17 00:19:21.163318",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace\nexport PARALLELISM_FACTOR=2\n\nfunction list_objects () {\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"$@\"' _ {}\n}\nexport -f list_objects\n\nfunction name_objects () {\n  export OBJECT=$1\n  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${OBJECT} ${1#*/}\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export OBJECT=${input[0]}\n  export NAME=${input[1]#*/}\n  echo \"${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/cluster/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nlist_objects |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000000c-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:20.939100",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.006583    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.008566    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.008889    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.010518    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.010667    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.012390    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.013219    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.014381    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.015219    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nE0717 00:19:21.017035    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.077144    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.078247    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.078860    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.079978    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.080887    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.081715    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.082549    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.083371    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.084254    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.085294    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.148647    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.150561    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.152660    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.154061    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.155559    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.006583    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.008566    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.008889    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.010518    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.010667    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.012390    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.013219    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.014381    3862 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.015219    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "E0717 00:19:21.017035    3866 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.077144    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.078247    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.078860    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.079978    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.080887    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.081715    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.082549    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.083371    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.084254    3889 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.085294    3891 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.148647    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.150561    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.152660    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.154061    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.155559    3911 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000000c-1-controller1"
                        },
                        "controller-2": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nexport OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace\nexport PARALLELISM_FACTOR=2\n\nfunction list_objects () {\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"$@\"' _ {}\n}\nexport -f list_objects\n\nfunction name_objects () {\n  export OBJECT=$1\n  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${OBJECT} ${1#*/}\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export OBJECT=${input[0]}\n  export NAME=${input[1]#*/}\n  echo \"${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/cluster/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nlist_objects |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                            "delta": "0:00:00.241908",
                            "end": "2026-07-17 00:19:21.183583",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace\nexport PARALLELISM_FACTOR=2\n\nfunction list_objects () {\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"$@\"' _ {}\n}\nexport -f list_objects\n\nfunction name_objects () {\n  export OBJECT=$1\n  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${OBJECT} ${1#*/}\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export OBJECT=${input[0]}\n  export NAME=${input[1]#*/}\n  echo \"${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/cluster/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nlist_objects |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000000c-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:20.941675",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.017766    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.019922    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.022100    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.025757    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.026369    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.027512    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.028264    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nE0717 00:19:21.030280    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.032424    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.034201    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.090084    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.092051    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.093691    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.095516    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.097213    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nE0717 00:19:21.099648    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.101712    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.103688    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.105322    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.107242    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.164431    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.167867    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.169997    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.171788    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.173719    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.017766    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.019922    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.022100    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.025757    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.026369    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.027512    2972 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.028264    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "E0717 00:19:21.030280    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.032424    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.034201    2969 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.090084    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.092051    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.093691    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.095516    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.097213    2995 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "E0717 00:19:21.099648    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.101712    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.103688    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.105322    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.107242    3002 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.164431    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.167867    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.169997    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.171788    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.173719    3020 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000000c-1-controller2"
                        },
                        "controller-3": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nexport OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace\nexport PARALLELISM_FACTOR=2\n\nfunction list_objects () {\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"$@\"' _ {}\n}\nexport -f list_objects\n\nfunction name_objects () {\n  export OBJECT=$1\n  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${OBJECT} ${1#*/}\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export OBJECT=${input[0]}\n  export NAME=${input[1]#*/}\n  echo \"${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/cluster/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nlist_objects |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                            "delta": "0:00:00.221507",
                            "end": "2026-07-17 00:19:21.155886",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace\nexport PARALLELISM_FACTOR=2\n\nfunction list_objects () {\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"$@\"' _ {}\n}\nexport -f list_objects\n\nfunction name_objects () {\n  export OBJECT=$1\n  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${OBJECT} ${1#*/}\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export OBJECT=${input[0]}\n  export NAME=${input[1]#*/}\n  echo \"${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/cluster/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nlist_objects |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000000c-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:20.934379",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.001661    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.003560    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.004862    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.005264    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.006666    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.006901    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.008416    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.008587    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nE0717 00:19:21.010231    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.011828    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.068781    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.069323    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.070427    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.071188    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.072217    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.072844    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.074159    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.074575    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.075775    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.076227    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0717 00:19:21.138221    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.140438    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.142299    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.144248    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:21.146150    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.001661    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.003560    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.004862    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.005264    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.006666    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.006901    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.008416    2986 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.008587    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "E0717 00:19:21.010231    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.011828    2989 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.068781    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.069323    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.070427    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.071188    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.072217    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.072844    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.074159    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.074575    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.075775    3014 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.076227    3011 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0717 00:19:21.138221    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.140438    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.142299    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.144248    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:21.146150    3035 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000000c-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:21.654427Z",
                            "start": "2026-07-17T00:19:20.573839Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000000c",
                        "name": "Gathering descriptions for cluster scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/objects/namespaced",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/objects/namespaced",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/objects/namespaced",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/objects/namespaced",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/objects/namespaced",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/objects/namespaced",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/objects/namespaced",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/objects/namespaced",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/objects/namespaced",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/objects/namespaced",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/objects/namespaced",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/objects/namespaced",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:22.083076Z",
                            "start": "2026-07-17T00:19:21.658194Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000000d",
                        "name": "creating directory for namespace scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets\nexport PARALLELISM_FACTOR=2\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\n\nfunction list_namespaced_objects () {\n  export NAMESPACE=$1\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} $@\"' _ {}\n}\nexport -f list_namespaced_objects\n\nfunction name_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} ${OBJECT} $@\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  export NAME=${input[2]#*/}\n  echo \"${NAMESPACE}/${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/namespaced/${NAMESPACE}/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nget_namespaces |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                            "delta": "0:00:00.074739",
                            "end": "2026-07-17 00:19:22.414255",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets\nexport PARALLELISM_FACTOR=2\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\n\nfunction list_namespaced_objects () {\n  export NAMESPACE=$1\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} $@\"' _ {}\n}\nexport -f list_namespaced_objects\n\nfunction name_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} ${OBJECT} $@\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  export NAME=${input[2]#*/}\n  echo \"${NAMESPACE}/${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/namespaced/${NAMESPACE}/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nget_namespaces |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000000e-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:22.339516",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nE0717 00:19:22.399145    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.401271    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.402991    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.404936    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.406705    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "E0717 00:19:22.399145    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.401271    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.402991    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.404936    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.406705    3942 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000000e-1-controller1"
                        },
                        "controller-2": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets\nexport PARALLELISM_FACTOR=2\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\n\nfunction list_namespaced_objects () {\n  export NAMESPACE=$1\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} $@\"' _ {}\n}\nexport -f list_namespaced_objects\n\nfunction name_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} ${OBJECT} $@\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  export NAME=${input[2]#*/}\n  echo \"${NAMESPACE}/${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/namespaced/${NAMESPACE}/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nget_namespaces |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                            "delta": "0:00:00.084015",
                            "end": "2026-07-17 00:19:22.437966",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets\nexport PARALLELISM_FACTOR=2\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\n\nfunction list_namespaced_objects () {\n  export NAMESPACE=$1\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} $@\"' _ {}\n}\nexport -f list_namespaced_objects\n\nfunction name_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} ${OBJECT} $@\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  export NAME=${input[2]#*/}\n  echo \"${NAMESPACE}/${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/namespaced/${NAMESPACE}/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nget_namespaces |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000000e-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:22.353951",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nE0717 00:19:22.419677    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.422134    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.423979    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.426336    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.429491    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "E0717 00:19:22.419677    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.422134    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.423979    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.426336    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.429491    3051 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000000e-1-controller2"
                        },
                        "controller-3": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets\nexport PARALLELISM_FACTOR=2\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\n\nfunction list_namespaced_objects () {\n  export NAMESPACE=$1\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} $@\"' _ {}\n}\nexport -f list_namespaced_objects\n\nfunction name_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} ${OBJECT} $@\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  export NAME=${input[2]#*/}\n  echo \"${NAMESPACE}/${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/namespaced/${NAMESPACE}/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nget_namespaces |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                            "delta": "0:00:00.075913",
                            "end": "2026-07-17 00:19:22.481042",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets\nexport PARALLELISM_FACTOR=2\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\n\nfunction list_namespaced_objects () {\n  export NAMESPACE=$1\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} $@\"' _ {}\n}\nexport -f list_namespaced_objects\n\nfunction name_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} ${OBJECT} $@\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  export NAME=${input[2]#*/}\n  echo \"${NAMESPACE}/${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/namespaced/${NAMESPACE}/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nget_namespaces |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000000e-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:22.405129",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nE0717 00:19:22.463089    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.465315    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.466940    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.468877    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:22.470434    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "E0717 00:19:22.463089    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.465315    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.466940    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.468877    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:22.470434    3066 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000000e-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:22.700799Z",
                            "start": "2026-07-17T00:19:22.126980Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000000e",
                        "name": "Gathering descriptions for namespace scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.238:/tmp/logs/objects /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.238:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1\ncd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/namespaced/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "created directory /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                                "cd+++++++++ objects/",
                                "cd+++++++++ objects/cluster/",
                                "cd+++++++++ objects/namespaced/"
                            ]
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.77:/tmp/logs/objects /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.77:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2\ncd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/namespaced/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "created directory /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                                "cd+++++++++ objects/",
                                "cd+++++++++ objects/cluster/",
                                "cd+++++++++ objects/namespaced/"
                            ]
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.156:/tmp/logs/objects /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.156:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3\ncd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/namespaced/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "created directory /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                                "cd+++++++++ objects/",
                                "cd+++++++++ objects/cluster/",
                                "cd+++++++++ objects/namespaced/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:23.311248Z",
                            "start": "2026-07-17T00:19:22.705305Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000000f",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/pod-logs",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/pod-logs",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/pod-logs",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/pod-logs",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/pod-logs",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/pod-logs",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/pod-logs",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/pod-logs",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/pod-logs",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/pod-logs",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/pod-logs",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/pod-logs",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:23.575031Z",
                            "start": "2026-07-17T00:19:23.327470Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-000000000013",
                        "name": "creating directory for pod logs"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/pod-logs/failed-pods",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/pod-logs/failed-pods",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "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": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/logs/pod-logs/failed-pods",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/pod-logs/failed-pods",
                            "size": 40,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:23.831836Z",
                            "start": "2026-07-17T00:19:23.578561Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-000000000014",
                        "name": "creating directory for failed pod logs"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\nfunction get_pods () {\n  NAMESPACE=$1\n  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -I {} echo ${NAMESPACE} {}\n}\nexport -f get_pods\nfunction get_pod_logs () {\n  NAMESPACE=${1% *}\n  POD=${1#* }\n  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')\n  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')\n  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do\n    echo \"${NAMESPACE}/${POD}/${CONTAINER}\"\n    mkdir -p \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}\"\n    mkdir -p \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}\"\n    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n  done\n}\nexport -f get_pod_logs\nget_namespaces |  xargs -r -I {} bash -c 'get_pods \"$@\"' _ {} |  xargs -r -I {} bash -c 'get_pod_logs \"$@\"' _ {}",
                            "delta": "0:00:00.077649",
                            "end": "2026-07-17 00:19:24.160810",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\nfunction get_pods () {\n  NAMESPACE=$1\n  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -I {} echo ${NAMESPACE} {}\n}\nexport -f get_pods\nfunction get_pod_logs () {\n  NAMESPACE=${1% *}\n  POD=${1#* }\n  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')\n  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')\n  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do\n    echo \"${NAMESPACE}/${POD}/${CONTAINER}\"\n    mkdir -p \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}\"\n    mkdir -p \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}\"\n    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n  done\n}\nexport -f get_pod_logs\nget_namespaces |  xargs -r -I {} bash -c 'get_pods \"$@\"' _ {} |  xargs -r -I {} bash -c 'get_pod_logs \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-000000000015-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:24.083161",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0717 00:19:24.144638    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.146401    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.148018    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.149886    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.151465    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "E0717 00:19:24.144638    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.146401    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.148018    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.149886    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.151465    3998 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-000000000015-1-controller1"
                        },
                        "controller-2": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\nfunction get_pods () {\n  NAMESPACE=$1\n  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -I {} echo ${NAMESPACE} {}\n}\nexport -f get_pods\nfunction get_pod_logs () {\n  NAMESPACE=${1% *}\n  POD=${1#* }\n  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')\n  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')\n  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do\n    echo \"${NAMESPACE}/${POD}/${CONTAINER}\"\n    mkdir -p \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}\"\n    mkdir -p \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}\"\n    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n  done\n}\nexport -f get_pod_logs\nget_namespaces |  xargs -r -I {} bash -c 'get_pods \"$@\"' _ {} |  xargs -r -I {} bash -c 'get_pod_logs \"$@\"' _ {}",
                            "delta": "0:00:00.087062",
                            "end": "2026-07-17 00:19:24.186795",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\nfunction get_pods () {\n  NAMESPACE=$1\n  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -I {} echo ${NAMESPACE} {}\n}\nexport -f get_pods\nfunction get_pod_logs () {\n  NAMESPACE=${1% *}\n  POD=${1#* }\n  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')\n  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')\n  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do\n    echo \"${NAMESPACE}/${POD}/${CONTAINER}\"\n    mkdir -p \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}\"\n    mkdir -p \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}\"\n    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n  done\n}\nexport -f get_pod_logs\nget_namespaces |  xargs -r -I {} bash -c 'get_pods \"$@\"' _ {} |  xargs -r -I {} bash -c 'get_pod_logs \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-000000000015-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:24.099733",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0717 00:19:24.168633    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.171087    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.172813    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.174563    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.176204    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "E0717 00:19:24.168633    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.171087    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.172813    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.174563    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.176204    3104 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-000000000015-1-controller2"
                        },
                        "controller-3": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\nfunction get_pods () {\n  NAMESPACE=$1\n  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -I {} echo ${NAMESPACE} {}\n}\nexport -f get_pods\nfunction get_pod_logs () {\n  NAMESPACE=${1% *}\n  POD=${1#* }\n  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')\n  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')\n  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do\n    echo \"${NAMESPACE}/${POD}/${CONTAINER}\"\n    mkdir -p \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}\"\n    mkdir -p \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}\"\n    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n  done\n}\nexport -f get_pod_logs\nget_namespaces |  xargs -r -I {} bash -c 'get_pods \"$@\"' _ {} |  xargs -r -I {} bash -c 'get_pod_logs \"$@\"' _ {}",
                            "delta": "0:00:00.079933",
                            "end": "2026-07-17 00:19:24.188700",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\nfunction get_pods () {\n  NAMESPACE=$1\n  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -I {} echo ${NAMESPACE} {}\n}\nexport -f get_pods\nfunction get_pod_logs () {\n  NAMESPACE=${1% *}\n  POD=${1#* }\n  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')\n  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')\n  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do\n    echo \"${NAMESPACE}/${POD}/${CONTAINER}\"\n    mkdir -p \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}\"\n    mkdir -p \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}\"\n    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n  done\n}\nexport -f get_pod_logs\nget_namespaces |  xargs -r -I {} bash -c 'get_pods \"$@\"' _ {} |  xargs -r -I {} bash -c 'get_pod_logs \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-000000000015-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:24.108767",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0717 00:19:24.171871    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.174555    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.176471    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.178406    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:24.180135    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "E0717 00:19:24.171871    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.174555    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.176471    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.178406    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:24.180135    3123 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-000000000015-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:24.404014Z",
                            "start": "2026-07-17T00:19:23.875538Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-000000000015",
                        "name": "retrieve all kubernetes logs, current and previous (if they exist)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.238:/tmp/logs/pod-logs /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.238:/tmp/logs/pod-logs",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ pod-logs/\ncd+++++++++ pod-logs/failed-pods/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ pod-logs/",
                                "cd+++++++++ pod-logs/failed-pods/"
                            ]
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.77:/tmp/logs/pod-logs /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.77:/tmp/logs/pod-logs",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ pod-logs/\ncd+++++++++ pod-logs/failed-pods/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ pod-logs/",
                                "cd+++++++++ pod-logs/failed-pods/"
                            ]
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.156:/tmp/logs/pod-logs /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.156:/tmp/logs/pod-logs",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ pod-logs/\ncd+++++++++ pod-logs/failed-pods/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ pod-logs/",
                                "cd+++++++++ pod-logs/failed-pods/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:25.010029Z",
                            "start": "2026-07-17T00:19:24.409911Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-000000000016",
                        "name": "Downloads pod logs to executor"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "directory",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/tmp/logs/helm/values",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/tmp/logs/helm/values",
                                            "state": "absent"
                                        }
                                    },
                                    "directory": "values",
                                    "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": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/tmp/logs/helm/values",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/tmp/logs/helm/values",
                                    "size": 40,
                                    "state": "directory",
                                    "uid": 0
                                },
                                {
                                    "ansible_loop_var": "directory",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/tmp/logs/helm/releases",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/tmp/logs/helm/releases",
                                            "state": "absent"
                                        }
                                    },
                                    "directory": "releases",
                                    "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": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/tmp/logs/helm/releases",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/tmp/logs/helm/releases",
                                    "size": 40,
                                    "state": "directory",
                                    "uid": 0
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "directory",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/tmp/logs/helm/values",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/tmp/logs/helm/values",
                                            "state": "absent"
                                        }
                                    },
                                    "directory": "values",
                                    "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": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/tmp/logs/helm/values",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/tmp/logs/helm/values",
                                    "size": 40,
                                    "state": "directory",
                                    "uid": 0
                                },
                                {
                                    "ansible_loop_var": "directory",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/tmp/logs/helm/releases",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/tmp/logs/helm/releases",
                                            "state": "absent"
                                        }
                                    },
                                    "directory": "releases",
                                    "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": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/tmp/logs/helm/releases",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/tmp/logs/helm/releases",
                                    "size": 40,
                                    "state": "directory",
                                    "uid": 0
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "directory",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/tmp/logs/helm/values",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/tmp/logs/helm/values",
                                            "state": "absent"
                                        }
                                    },
                                    "directory": "values",
                                    "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": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/tmp/logs/helm/values",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/tmp/logs/helm/values",
                                    "size": 40,
                                    "state": "directory",
                                    "uid": 0
                                },
                                {
                                    "ansible_loop_var": "directory",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/tmp/logs/helm/releases",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/tmp/logs/helm/releases",
                                            "state": "absent"
                                        }
                                    },
                                    "directory": "releases",
                                    "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": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/tmp/logs/helm/releases",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/tmp/logs/helm/releases",
                                    "size": 40,
                                    "state": "directory",
                                    "uid": 0
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000018",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:25.496022Z",
                            "start": "2026-07-17T00:19:25.024453Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000001a",
                        "name": "creating directory for helm release status"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      # get all Helm releases including pending and failed releases\n      for release in $(helm list --all --short --namespace $namespace); do\n              # Make respective directories only when a Helm release actually exists in the namespace\n              # to prevent uploading a bunch of empty directories for namespaces without a Helm release.\n              mkdir -p /tmp/logs/helm/releases/$namespace\n              mkdir -p /tmp/logs/helm/values/$namespace\n\n              helm status $release --namespace $namespace >> /tmp/logs/helm/releases/$namespace/$release.txt\n              helm get values $release --namespace $namespace --all >> /tmp/logs/helm/values/$namespace/$release.yaml\n      done\ndone",
                            "delta": "0:00:00.067760",
                            "end": "2026-07-17 00:19:25.825540",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      # get all Helm releases including pending and failed releases\n      for release in $(helm list --all --short --namespace $namespace); do\n              # Make respective directories only when a Helm release actually exists in the namespace\n              # to prevent uploading a bunch of empty directories for namespaces without a Helm release.\n              mkdir -p /tmp/logs/helm/releases/$namespace\n              mkdir -p /tmp/logs/helm/values/$namespace\n\n              helm status $release --namespace $namespace >> /tmp/logs/helm/releases/$namespace/$release.txt\n              helm get values $release --namespace $namespace --all >> /tmp/logs/helm/values/$namespace/$release.yaml\n      done\ndone",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000001c-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:25.757780",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0717 00:19:25.811716    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.813607    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.815084    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.816914    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.818539    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "E0717 00:19:25.811716    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.813607    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.815084    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.816914    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.818539    4047 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000001c-1-controller1"
                        },
                        "controller-2": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      # get all Helm releases including pending and failed releases\n      for release in $(helm list --all --short --namespace $namespace); do\n              # Make respective directories only when a Helm release actually exists in the namespace\n              # to prevent uploading a bunch of empty directories for namespaces without a Helm release.\n              mkdir -p /tmp/logs/helm/releases/$namespace\n              mkdir -p /tmp/logs/helm/values/$namespace\n\n              helm status $release --namespace $namespace >> /tmp/logs/helm/releases/$namespace/$release.txt\n              helm get values $release --namespace $namespace --all >> /tmp/logs/helm/values/$namespace/$release.yaml\n      done\ndone",
                            "delta": "0:00:00.082928",
                            "end": "2026-07-17 00:19:25.862754",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      # get all Helm releases including pending and failed releases\n      for release in $(helm list --all --short --namespace $namespace); do\n              # Make respective directories only when a Helm release actually exists in the namespace\n              # to prevent uploading a bunch of empty directories for namespaces without a Helm release.\n              mkdir -p /tmp/logs/helm/releases/$namespace\n              mkdir -p /tmp/logs/helm/values/$namespace\n\n              helm status $release --namespace $namespace >> /tmp/logs/helm/releases/$namespace/$release.txt\n              helm get values $release --namespace $namespace --all >> /tmp/logs/helm/values/$namespace/$release.yaml\n      done\ndone",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000001c-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:25.779826",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0717 00:19:25.844846    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.847309    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.849868    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.851887    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.853770    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "E0717 00:19:25.844846    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.847309    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.849868    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.851887    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.853770    3155 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000001c-1-controller2"
                        },
                        "controller-3": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      # get all Helm releases including pending and failed releases\n      for release in $(helm list --all --short --namespace $namespace); do\n              # Make respective directories only when a Helm release actually exists in the namespace\n              # to prevent uploading a bunch of empty directories for namespaces without a Helm release.\n              mkdir -p /tmp/logs/helm/releases/$namespace\n              mkdir -p /tmp/logs/helm/values/$namespace\n\n              helm status $release --namespace $namespace >> /tmp/logs/helm/releases/$namespace/$release.txt\n              helm get values $release --namespace $namespace --all >> /tmp/logs/helm/values/$namespace/$release.yaml\n      done\ndone",
                            "delta": "0:00:00.072931",
                            "end": "2026-07-17 00:19:25.845060",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      # get all Helm releases including pending and failed releases\n      for release in $(helm list --all --short --namespace $namespace); do\n              # Make respective directories only when a Helm release actually exists in the namespace\n              # to prevent uploading a bunch of empty directories for namespaces without a Helm release.\n              mkdir -p /tmp/logs/helm/releases/$namespace\n              mkdir -p /tmp/logs/helm/values/$namespace\n\n              helm status $release --namespace $namespace >> /tmp/logs/helm/releases/$namespace/$release.txt\n              helm get values $release --namespace $namespace --all >> /tmp/logs/helm/values/$namespace/$release.yaml\n      done\ndone",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "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-7431-fc4b-00000000001c-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-17 00:19:25.772129",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0717 00:19:25.829597    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.832050    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.833911    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.835981    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nE0717 00:19:25.837838    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?",
                            "stdout_lines": [
                                "E0717 00:19:25.829597    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.832050    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.833911    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.835981    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "E0717 00:19:25.837838    3172 memcache.go:265] \"Unhandled Error\" err=\"couldn't get current server API group list: Get \\\"http://localhost:8080/api?timeout=32s\\\": dial tcp [::1]:8080: connect: connection refused\"",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
                            ],
                            "zuul_log_id": "0242ac17-0010-7431-fc4b-00000000001c-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000018",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:26.075985Z",
                            "start": "2026-07-17T00:19:25.542134Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000001c",
                        "name": "Gather get release status for helm charts"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.238:/tmp/logs/helm /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.238:/tmp/logs/helm",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ helm/\ncd+++++++++ helm/releases/\ncd+++++++++ helm/values/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ helm/",
                                "cd+++++++++ helm/releases/",
                                "cd+++++++++ helm/values/"
                            ]
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.77:/tmp/logs/helm /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.77:/tmp/logs/helm",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ helm/\ncd+++++++++ helm/releases/\ncd+++++++++ helm/values/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ helm/",
                                "cd+++++++++ helm/releases/",
                                "cd+++++++++ helm/values/"
                            ]
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.156:/tmp/logs/helm /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                            "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.156:/tmp/logs/helm",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ helm/\ncd+++++++++ helm/releases/\ncd+++++++++ helm/values/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ helm/",
                                "cd+++++++++ helm/releases/",
                                "cd+++++++++ helm/values/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-7431-fc4b-000000000018",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:26.585930Z",
                            "start": "2026-07-17T00:19:26.079663Z"
                        },
                        "id": "0242ac17-0010-7431-fc4b-00000000001d",
                        "name": "Downloads logs to executor"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 12,
            "failures": 0,
            "ignored": 0,
            "ok": 12,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 12,
            "failures": 0,
            "ignored": 0,
            "ok": 12,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 12,
            "failures": 0,
            "ignored": 0,
            "ok": 12,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "1",
    "phase": "post",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-07-17T00:19:30.711200Z",
                    "start": "2026-07-17T00:19:27.519431Z"
                },
                "id": "0242ac17-0010-cc38-4263-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1"
                            },
                            "changed": false
                        },
                        "controller-2": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2"
                            },
                            "changed": false
                        },
                        "controller-3": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-cc38-4263-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:27.598837Z",
                            "start": "2026-07-17T00:19:27.529928Z"
                        },
                        "id": "0242ac17-0010-cc38-4263-00000000000a",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-cc38-4263-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:27.645436Z",
                            "start": "2026-07-17T00:19:27.604375Z"
                        },
                        "id": "0242ac17-0010-cc38-4263-00000000000b",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1"
                                        }
                                    },
                                    "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2"
                                        }
                                    },
                                    "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3"
                                        }
                                    },
                                    "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/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-cc38-4263-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:28.522541Z",
                            "start": "2026-07-17T00:19:27.653850Z"
                        },
                        "id": "0242ac17-0010-cc38-4263-00000000000c",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.238:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.238:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-1",
                                        "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.238:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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.238:/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/3f04219cc3864aa3bc0a73187c80bad4/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.238:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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.238:/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/3f04219cc3864aa3bc0a73187c80bad4/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.77:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.77:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-2",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.77:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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.77:/home/zuul/zuul-output/artifacts/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.77:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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.77:/home/zuul/zuul-output/docs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.156:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.156:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/controller-3",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.156:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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.156:/home/zuul/zuul-output/artifacts/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.156:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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.156:/home/zuul/zuul-output/docs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "stdout_lines": [],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-cc38-4263-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:30.079754Z",
                            "start": "2026-07-17T00:19:28.531032Z"
                        },
                        "id": "0242ac17-0010-cc38-4263-00000000000e",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts/* /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.005465",
                                    "end": "2026-07-17 00:19:30.468651",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/artifacts/* /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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-07-17 00:19:30.463186",
                                    "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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/docs/* /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.006703",
                                    "end": "2026-07-17 00:19:30.673973",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/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/3f04219cc3864aa3bc0a73187c80bad4/work/docs/* /var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/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-07-17 00:19:30.667270",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-cc38-4263-000000000011",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:30.711200Z",
                            "start": "2026-07-17T00:19:30.098618Z"
                        },
                        "id": "0242ac17-0010-cc38-4263-000000000013",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-07-17T00:19:31.402492Z",
                    "start": "2026-07-17T00:19:30.757154Z"
                },
                "id": "0242ac17-0010-cc38-4263-000000000015",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-2": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        },
                        "controller-3": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC5QyHXkXm9MLVdMpZKEJXfIsml7tBcEiN1BTo/Fy04TAqAd0c1hxGa9z5qvJ7PY0OL6PzUq1BVtJPb39u+XZuFnyrXWGwPSeb+5iNqjq7GOXkWn46x//5Vd0BoERL6OMHQvjeomIsXpsejjKYXSq2MQrmuS3hwhGzcyaNYdJvLmukSD+5liTwNWP2y6gXRr+Ubx8DqlG9wVPC1OTkQZ0M+dFTaLPlpF18BLYj6ztKLRN9IC4B0SI5LC7C68oFAf12VYRw/Mv6nthhSh+is+gGHThBEKz3xjiJNYZsqmrLNWF3/RVhV+wlxff5+7JCTaCpK6lKV1BKa9QydZ+zcR36bDI5sPocCl5xY2454zX1r2lQrZjup4FUoGcVBR44Fo/mtxS8IZiZil8TfHM5u5VyLi0ubHZWF/2+o+h7K3YjQvEF4jd98YShS6N9hXbZuV6rAy7o8dGBIf6ye+tzRMuE+Kn/LbUFV800lyaMF23yimBNJdMJYsZRzKoU7f2w+c+c= 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-cc38-4263-000000000018",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/3f04219cc3864aa3bc0a73187c80bad4/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-17T00:19:31.402492Z",
                            "start": "2026-07-17T00:19:30.766018Z"
                        },
                        "id": "0242ac17-0010-cc38-4263-00000000001a",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
