[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-18T17:50:59.270512Z",
                    "start": "2026-04-18T17:50:56.029395Z"
                },
                "id": "0242ac17-0011-121d-bbd6-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-04-18",
                                    "day": "18",
                                    "epoch": "1776534656",
                                    "epoch_int": "1776534656",
                                    "hour": "17",
                                    "iso8601": "2026-04-18T17:50:56Z",
                                    "iso8601_basic": "20260418T175056652268",
                                    "iso8601_basic_short": "20260418T175056",
                                    "iso8601_micro": "2026-04-18T17:50:56.652268Z",
                                    "minute": "50",
                                    "month": "04",
                                    "second": "56",
                                    "time": "17:50:56",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Saturday",
                                    "weekday_number": "6",
                                    "weeknumber": "15",
                                    "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/72e1e456626f4d82a87e02068e87a09f/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work",
                                    "HOSTNAME": "0a8996d2b663",
                                    "LANG": "C.UTF-8",
                                    "PATH": "/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                    "PWD": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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": "2156918",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-BeDygFULiFJU/agent.2156917",
                                    "TMP": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/ansible/logging.json",
                                    "ZUUL_OUTPUT_MAX_BYTES": "1073741824"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "NA",
                                "ansible_fqdn": "0a8996d2b663",
                                "ansible_hostname": "0a8996d2b663",
                                "ansible_hostnqn": "",
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "5.15.0-130-generic",
                                "ansible_kernel_version": "#140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024",
                                "ansible_loadavg": {
                                    "15m": 21.02978515625,
                                    "1m": 12.58935546875,
                                    "5m": 15.5263671875
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 1482,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 11398,
                                        "used": 20692
                                    },
                                    "real": {
                                        "free": 1482,
                                        "total": 32090,
                                        "used": 30608
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 6903291,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698289,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595774,
                                        "inode_total": 20643840,
                                        "inode_used": 5048066,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275879936,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903291,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698289,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595774,
                                        "inode_total": 20643840,
                                        "inode_used": 5048066,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275879936,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903279,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698301,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595772,
                                        "inode_total": 20643840,
                                        "inode_used": 5048068,
                                        "mount": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275830784,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903279,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698301,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595771,
                                        "inode_total": 20643840,
                                        "inode_used": 5048069,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275830784,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903252,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698328,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595763,
                                        "inode_total": 20643840,
                                        "inode_used": 5048077,
                                        "mount": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275720192,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903252,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698328,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595763,
                                        "inode_total": 20643840,
                                        "inode_used": 5048077,
                                        "mount": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275720192,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903252,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698328,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595763,
                                        "inode_total": 20643840,
                                        "inode_used": 5048077,
                                        "mount": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275720192,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903247,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698333,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595762,
                                        "inode_total": 20643840,
                                        "inode_used": 5048078,
                                        "mount": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275699712,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903240,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698340,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595760,
                                        "inode_total": 20643840,
                                        "inode_used": 5048080,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275671040,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 186006184,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 77934533,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 57020858,
                                        "inode_total": 67108864,
                                        "inode_used": 10088006,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 761881329664,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 6903224,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33698356,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 15595756,
                                        "inode_total": 20643840,
                                        "inode_used": 5048084,
                                        "mount": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 28275605504,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    }
                                ],
                                "ansible_nodename": "0a8996d2b663",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": [
                                        "tty1",
                                        "ttyS0"
                                    ],
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_processor": [
                                    "0",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "1",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "2",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "3",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "4",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "5",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "6",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "7",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "8",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "9",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "10",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "11",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "12",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "13",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "14",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "15",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 16,
                                "ansible_processor_nproc": 16,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 16,
                                "ansible_product_name": "NA",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "NA",
                                "ansible_python": {
                                    "executable": "/usr/local/lib/zuul/ansible/9/bin/python",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 14,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        14,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.14",
                                "ansible_real_group_id": 0,
                                "ansible_real_user_id": 0,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "bwrap",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": "N/A",
                                "ansible_system_capabilities_enforced": "N/A",
                                "ansible_system_vendor": "NA",
                                "ansible_uptime_seconds": 40198386,
                                "ansible_user_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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-04-18T17:50:56.968381Z",
                            "start": "2026-04-18T17:50:56.038161Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-00000000002c",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:56.996506Z",
                            "start": "2026-04-18T17:50:56.973016Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-00000000000a",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "72e/oss/72e1e456626f4d82a87e02068e87a09f"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000056",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:57.075406Z",
                            "start": "2026-04-18T17:50:57.014448Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-000000000058",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.16\nJob: ansible-collection-kubernetes-molecule-cluster-upgrade\nPipeline: check\nExecutor: 0a8996d2b663\nTriggered by: https://github.com/vexxhost/ansible-collection-kubernetes/pull/259\nEvent ID: 588572d0-3b4c-11f1-8812-b53b9a62ea82\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:57.152128Z",
                            "start": "2026-04-18T17:50:57.092352Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-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: np0000167585\nUsername: zuul\nDistro: Debian 13.4\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.19.213.159\n",
                                    "zj_item": "controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-2\nHostname: np0000167586\nUsername: zuul\nDistro: Debian 13.4\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.19.213.20\n",
                                    "zj_item": "controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller-3\nHostname: np0000167587\nUsername: zuul\nDistro: Debian 13.4\nProvider: yul1\nRegion: ca-ymq-1\nLabel: debian-trixie\nProduct Name: OpenStack Nova\nInterface IP: 199.19.213.15\n",
                                    "zj_item": "controller-3"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:57.493862Z",
                            "start": "2026-04-18T17:50:57.157820Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-00000000000c",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:57.962891Z",
                            "start": "2026-04-18T17:50:57.500605Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-000000000011",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "f156c74e82b5628728c4ebb385ba731e3333942c",
                            "dest": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "f156c74e82b5628728c4ebb385ba731e3333942c",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/.ansible/tmp/ansible-tmp-1776534657.9991944-84-137753997472144/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "aa98e01b11f6c88f97a0b38d1d6c76a0",
                            "mode": "0644",
                            "owner": "root",
                            "size": 26933,
                            "src": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/.ansible/tmp/ansible-tmp-1776534657.9991944-84-137753997472144/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-00000000000f",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:59.270512Z",
                            "start": "2026-04-18T17:50:57.967966Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-000000000012",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-04-18T17:51:08.346621Z",
                    "start": "2026-04-18T17:50:59.293671Z"
                },
                "id": "0242ac17-0011-121d-bbd6-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/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:59.575086Z",
                            "start": "2026-04-18T17:50:59.317453Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-00000000001a",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:50:59.626829Z",
                            "start": "2026-04-18T17:50:59.581668Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-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/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.883009",
                            "end": "2026-04-18 17:51:00.981307",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa -b 3072",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-121d-bbd6-0000000000a6-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:51:00.098298",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa.pub\nThe key fingerprint is:\nSHA256:KONRual0UFBRF/tMmzFss93bh9qTTPCjlVYZVxO7GU4 zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|    .o+o. o.   o+|\n|     . . . o   .+|\n|    . o   . B  E+|\n|     o +   =.Ooo=|\n|    = = S   *o.*.|\n|   o *        B.o|\n|    o        *.+o|\n|            .o+ .|\n|            . .. |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:KONRual0UFBRF/tMmzFss93bh9qTTPCjlVYZVxO7GU4 zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|    .o+o. o.   o+|",
                                "|     . . . o   .+|",
                                "|    . o   . B  E+|",
                                "|     o +   =.Ooo=|",
                                "|    = = S   *o.*.|",
                                "|   o *        B.o|",
                                "|    o        *.+o|",
                                "|            .o+ .|",
                                "|            . .. |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0011-121d-bbd6-0000000000a6-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:01.027664Z",
                            "start": "2026-04-18T17:50:59.650109Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000a6",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:01.091720Z",
                            "start": "2026-04-18T17:51:01.040317Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000a7",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:01.180679Z",
                            "start": "2026-04-18T17:51:01.134926Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:01.724590Z",
                            "start": "2026-04-18T17:51:01.188429Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000d5",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:02.267695Z",
                            "start": "2026-04-18T17:51:01.728247Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000d6",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "90bd5915caa8167bb2f03ebb13794837761da66c",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "72e1e456626f4d82a87e02068e87a09f_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "90bd5915caa8167bb2f03ebb13794837761da66c",
                                    "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-1776534662.3145833-204-7664600689167/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "30e1609cf0ebfb3c75c44c35d13b2449",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534662.3145833-204-7664600689167/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "90bd5915caa8167bb2f03ebb13794837761da66c",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "72e1e456626f4d82a87e02068e87a09f_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "90bd5915caa8167bb2f03ebb13794837761da66c",
                                    "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-1776534662.3240361-205-64315435180661/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "30e1609cf0ebfb3c75c44c35d13b2449",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534662.3240361-205-64315435180661/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "90bd5915caa8167bb2f03ebb13794837761da66c",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "72e1e456626f4d82a87e02068e87a09f_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "90bd5915caa8167bb2f03ebb13794837761da66c",
                                    "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-1776534662.3279977-206-232422765741513/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "30e1609cf0ebfb3c75c44c35d13b2449",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534662.3279977-206-232422765741513/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:03.021394Z",
                            "start": "2026-04-18T17:51:02.271840Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000d7",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "11512f57765f745843ee145a0e224ab5cce2e556",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "72e1e456626f4d82a87e02068e87a09f_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "11512f57765f745843ee145a0e224ab5cce2e556",
                                    "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-1776534663.0665298-234-120566353378630/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "454b939725b960a59fe59430c6b6a966",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534663.0665298-234-120566353378630/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-2": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "11512f57765f745843ee145a0e224ab5cce2e556",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "72e1e456626f4d82a87e02068e87a09f_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "11512f57765f745843ee145a0e224ab5cce2e556",
                                    "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-1776534663.07558-235-117500565349846/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "454b939725b960a59fe59430c6b6a966",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534663.07558-235-117500565349846/source",
                            "state": "file",
                            "uid": 1000
                        },
                        "controller-3": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "11512f57765f745843ee145a0e224ab5cce2e556",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "72e1e456626f4d82a87e02068e87a09f_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "11512f57765f745843ee145a0e224ab5cce2e556",
                                    "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-1776534663.0902963-237-51530316361384/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "454b939725b960a59fe59430c6b6a966",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534663.0902963-237-51530316361384/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:03.791605Z",
                            "start": "2026-04-18T17:51:03.025367Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000d8",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:03.909503Z",
                            "start": "2026-04-18T17:51:03.795955Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000a8",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/etc/zuul/id_rsa"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-0000000000ad",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:04.346729Z",
                            "start": "2026-04-18T17:51:03.916142Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000af",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa"
                            ],
                            "delta": "0:00:00.013297",
                            "end": "2026-04-18 17:51:04.636936",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-121d-bbd6-0000000000b5-0-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:51:04.623639",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/72e1e456626f4d82a87e02068e87a09f_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0011-121d-bbd6-0000000000b5-0-controller1"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:04.679028Z",
                            "start": "2026-04-18T17:51:04.361131Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000b5",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        },
                        "controller-2": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        },
                        "controller-3": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:05.037197Z",
                            "start": "2026-04-18T17:51:04.687347Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000b6",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000018",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:05.103522Z",
                            "start": "2026-04-18T17:51:05.042008Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-0000000000b7",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        },
                        "controller-2": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        },
                        "controller-3": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:05.484238Z",
                            "start": "2026-04-18T17:51:05.138058Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-00000000001f",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-00000000001d",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:06.528994Z",
                            "start": "2026-04-18T17:51:05.489956Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-000000000020",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:07.663523Z",
                            "start": "2026-04-18T17:51:06.544239Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-000000000024",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-121d-bbd6-000000000022",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:08.346621Z",
                            "start": "2026-04-18T17:51:07.669660Z"
                        },
                        "id": "0242ac17-0011-121d-bbd6-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-04-18T17:51:12.212455Z",
                    "start": "2026-04-18T17:51:09.145688Z"
                },
                "id": "0242ac17-0011-9f50-bd4a-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-1776534669.1964073-5-211909744750763/uv-x86_64-unknown-linux-gnuatss6ygw.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-1776534669.1964073-5-211909744750763/uv-x86_64-unknown-linux-gnuatss6ygw.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-1776534669.2110696-6-71255908724705/uv-x86_64-unknown-linux-gnukmnv4l3l.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-1776534669.2110696-6-71255908724705/uv-x86_64-unknown-linux-gnukmnv4l3l.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-1776534669.2159026-8-190148691633906/uv-x86_64-unknown-linux-gnud4m6ad5i.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-1776534669.2159026-8-190148691633906/uv-x86_64-unknown-linux-gnud4m6ad5i.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-9f50-bd4a-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:11.626605Z",
                            "start": "2026-04-18T17:51:09.157319Z"
                        },
                        "id": "0242ac17-0011-9f50-bd4a-000000000009",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.014615",
                            "end": "2026-04-18 17:51:12.045573",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-9f50-bd4a-00000000000a-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:51:12.030958",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-9f50-bd4a-00000000000a-1-controller1"
                        },
                        "controller-2": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.013493",
                            "end": "2026-04-18 17:51:12.051345",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-9f50-bd4a-00000000000a-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:51:12.037852",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-9f50-bd4a-00000000000a-1-controller2"
                        },
                        "controller-3": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.016243",
                            "end": "2026-04-18 17:51:12.052195",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-9f50-bd4a-00000000000a-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:51:12.035952",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-9f50-bd4a-00000000000a-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-9f50-bd4a-000000000007",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:12.212455Z",
                            "start": "2026-04-18T17:51:11.680677Z"
                        },
                        "id": "0242ac17-0011-9f50-bd4a-00000000000a",
                        "name": "Print version"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-2": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "controller-3": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "2",
    "phase": "pre",
    "playbook": "github.com/vexxhost/ansible-collection-kubernetes/test-playbooks/molecule/pre.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-18T17:51:22.061758Z",
                    "start": "2026-04-18T17:51:12.958280Z"
                },
                "id": "0242ac17-0011-f4df-406c-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1776534674,
                            "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": 1776534674,
                            "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": 1776534674,
                            "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-04-18T17:51:19.514875Z",
                            "start": "2026-04-18T17:51:12.969284Z"
                        },
                        "id": "0242ac17-0011-f4df-406c-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-04-18T17:51:19.565715Z",
                            "start": "2026-04-18T17:51:19.523711Z"
                        },
                        "id": "0242ac17-0011-f4df-406c-000000000007",
                        "name": "Disable firewalld"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.package",
                            "cache_update_time": 1776534674,
                            "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+deb13u1 [164 kB]\nGet:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u1 [77.7 kB]\nFetched 431 kB in 0s (15.1 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 ... 21211 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+deb13u1_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.7.1-6+deb13u1) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...\r\nUnpacking jq (1.7.1-6+deb13u1) ...\r\nSetting up libonig5:amd64 (6.9.9-1+b1) ...\r\nSetting up libjq1:amd64 (1.7.1-6+deb13u1) ...\r\nSetting up jq (1.7.1-6+deb13u1) ...\r\nProcessing triggers for libc-bin (2.41-12+deb13u2) ...\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+deb13u1 [164 kB]",
                                "Get:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u1 [77.7 kB]",
                                "Fetched 431 kB in 0s (15.1 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 ... 21211 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+deb13u1_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.7.1-6+deb13u1) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...",
                                "Unpacking jq (1.7.1-6+deb13u1) ...",
                                "Setting up libonig5:amd64 (6.9.9-1+b1) ...",
                                "Setting up libjq1:amd64 (1.7.1-6+deb13u1) ...",
                                "Setting up jq (1.7.1-6+deb13u1) ...",
                                "Processing triggers for libc-bin (2.41-12+deb13u2) ..."
                            ]
                        },
                        "controller-2": {
                            "action": "ansible.builtin.package",
                            "cache_update_time": 1776534674,
                            "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+deb13u1 [164 kB]\nGet:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u1 [77.7 kB]\nFetched 431 kB in 0s (12.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 ... 21211 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+deb13u1_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.7.1-6+deb13u1) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...\r\nUnpacking jq (1.7.1-6+deb13u1) ...\r\nSetting up libonig5:amd64 (6.9.9-1+b1) ...\r\nSetting up libjq1:amd64 (1.7.1-6+deb13u1) ...\r\nSetting up jq (1.7.1-6+deb13u1) ...\r\nProcessing triggers for libc-bin (2.41-12+deb13u2) ...\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+deb13u1 [164 kB]",
                                "Get:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u1 [77.7 kB]",
                                "Fetched 431 kB in 0s (12.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 ... 21211 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+deb13u1_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.7.1-6+deb13u1) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...",
                                "Unpacking jq (1.7.1-6+deb13u1) ...",
                                "Setting up libonig5:amd64 (6.9.9-1+b1) ...",
                                "Setting up libjq1:amd64 (1.7.1-6+deb13u1) ...",
                                "Setting up jq (1.7.1-6+deb13u1) ...",
                                "Processing triggers for libc-bin (2.41-12+deb13u2) ..."
                            ]
                        },
                        "controller-3": {
                            "action": "ansible.builtin.package",
                            "cache_update_time": 1776534674,
                            "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+deb13u1 [164 kB]\nGet:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u1 [77.7 kB]\nFetched 431 kB in 0s (14.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 ... 21211 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+deb13u1_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.7.1-6+deb13u1) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...\r\nUnpacking jq (1.7.1-6+deb13u1) ...\r\nSetting up libonig5:amd64 (6.9.9-1+b1) ...\r\nSetting up libjq1:amd64 (1.7.1-6+deb13u1) ...\r\nSetting up jq (1.7.1-6+deb13u1) ...\r\nProcessing triggers for libc-bin (2.41-12+deb13u2) ...\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+deb13u1 [164 kB]",
                                "Get:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u1 [77.7 kB]",
                                "Fetched 431 kB in 0s (14.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 ... 21211 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+deb13u1_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.7.1-6+deb13u1) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...",
                                "Unpacking jq (1.7.1-6+deb13u1) ...",
                                "Setting up libonig5:amd64 (6.9.9-1+b1) ...",
                                "Setting up libjq1:amd64 (1.7.1-6+deb13u1) ...",
                                "Setting up jq (1.7.1-6+deb13u1) ...",
                                "Processing triggers for libc-bin (2.41-12+deb13u2) ..."
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:22.061758Z",
                            "start": "2026-04-18T17:51:19.574808Z"
                        },
                        "id": "0242ac17-0011-f4df-406c-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-04-18T17:53:37.838495Z",
                    "start": "2026-04-18T17:51:23.265347Z"
                },
                "id": "0242ac17-0011-c199-6674-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "checksum": "f156c74e82b5628728c4ebb385ba731e3333942c",
                            "dest": "src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "f156c74e82b5628728c4ebb385ba731e3333942c",
                                    "content": null,
                                    "dest": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534683.33682-5-207196284393010/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "aa98e01b11f6c88f97a0b38d1d6c76a0",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 26933,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776534683.33682-5-207196284393010/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:24.481270Z",
                            "start": "2026-04-18T17:51:23.287760Z"
                        },
                        "id": "0242ac17-0011-c199-6674-000000000006",
                        "name": "Copy inventory file for Zuul"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.replace",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "after": null,
                                    "attributes": null,
                                    "backup": false,
                                    "before": null,
                                    "encoding": "utf-8",
                                    "group": null,
                                    "mode": null,
                                    "owner": null,
                                    "path": "src/github.com/vexxhost/ansible-collection-kubernetes/inventory.yaml",
                                    "regexp": "(^\\s*ansible_host:\\s*).*$",
                                    "replace": "\\1\"{{ nodepool.private_ipv4 }}\"",
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "msg": "3 replacements made",
                            "rc": 0
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:51:24.868950Z",
                            "start": "2026-04-18T17:51:24.490274Z"
                        },
                        "id": "0242ac17-0011-c199-6674-000000000007",
                        "name": "Switch \"ansible_host\" to private IP"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "molecule",
                                "test",
                                "--destroy",
                                "never",
                                "-s",
                                "cluster-upgrade"
                            ],
                            "delta": "0:02:02.378040",
                            "end": "2026-04-18 17:53:27.684248",
                            "failed": true,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run molecule test --destroy never -s cluster-upgrade",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-c199-6674-000000000008-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 2,
                            "start": "2026-04-18 17:51:25.306208",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.13.5 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\nDownloading pygments (1.2MiB)\nDownloading ansible-core (2.3MiB)\nDownloading cryptography (4.3MiB)\n Downloading cryptography\n Downloading pygments\n Downloading ansible-core\nInstalled 36 packages in 49ms\nINFO     Collection 'vexxhost.kubernetes' detected.\nINFO     Scenarios will be used from 'extensions/molecule'\nCRITICAL 'extensions/molecule/default/molecule.yml' glob failed.  Exiting.\nINFO     default scenario not found, disabling shared state.\nINFO     [cluster-upgrade > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy\nINFO     [cluster-upgrade > prerun] Performing prerun with role_name_check=0...\nINFO     [cluster-upgrade > dependency] Executing\nWARNING  [cluster-upgrade > dependency] Missing roles requirements file: requirements.yml\nWARNING  [cluster-upgrade > dependency] Missing collections requirements file: collections.yml\nWARNING  [cluster-upgrade > dependency] Executed: 2 missing (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > cleanup] Executing\nWARNING  [cluster-upgrade > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > destroy] Executing\nWARNING  [cluster-upgrade > destroy] Skipping, '--destroy=never' requested.\nINFO     [cluster-upgrade > destroy] Executed: Successful\nINFO     [cluster-upgrade > syntax] Executing\n\nplaybook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml\nINFO     [cluster-upgrade > syntax] Executed: Successful\nINFO     [cluster-upgrade > create] Executing\nWARNING  [cluster-upgrade > create] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [cluster-upgrade > prepare] Executing\n\nPLAY [Prepare] *****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nSaturday 18 April 2026  17:51:46 +0000 (0:00:00.029)       0:00:00.029 ********\n[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\n[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [Install Debian packages] *************************************************\nSaturday 18 April 2026  17:51:48 +0000 (0:00:01.297)       0:00:01.326 ********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nSaturday 18 April 2026  17:51:49 +0000 (0:00:01.628)       0:00:02.955 ********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nSaturday 18 April 2026  17:51:50 +0000 (0:00:00.900)       0:00:03.856 ********\nchanged: [controller-1]\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nSaturday 18 April 2026  17:51:51 +0000 (0:00:00.437)       0:00:04.294 ********\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-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller-3] => (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] ****\nSaturday 18 April 2026  17:51:52 +0000 (0:00:01.462)       0:00:05.756 ********\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-1] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\nfailed: [controller-3] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\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-3] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\nfailed: [controller-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}\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-3] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\nfailed: [controller-2] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\n...ignoring\n...ignoring\n...ignoring\n\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nSaturday 18 April 2026  17:51:53 +0000 (0:00:00.979)       0:00:06.736 ********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nSaturday 18 April 2026  17:51:53 +0000 (0:00:00.408)       0:00:07.145 ********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nSaturday 18 April 2026  17:51:54 +0000 (0:00:00.334)       0:00:07.479 ********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nSaturday 18 April 2026  17:51:54 +0000 (0:00:00.054)       0:00:07.534 ********\nok: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nSaturday 18 April 2026  17:51:54 +0000 (0:00:00.057)       0:00:07.591 ********\nok: [controller-2]\nok: [controller-1]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nSaturday 18 April 2026  17:51:55 +0000 (0:00:00.951)       0:00:08.542 ********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nSaturday 18 April 2026  17:51:55 +0000 (0:00:00.327)       0:00:08.870 ********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nSaturday 18 April 2026  17:51:55 +0000 (0:00:00.004)       0:00:08.874 ********\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nSaturday 18 April 2026  17:51:55 +0000 (0:00:00.002)       0:00:08.876 ********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nSaturday 18 April 2026  17:51:55 +0000 (0:00:00.052)       0:00:08.929 ********\nok: [controller-1]\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nSaturday 18 April 2026  17:51:56 +0000 (0:00:00.899)       0:00:09.829 ********\nok: [controller-1]\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nSaturday 18 April 2026  17:51:57 +0000 (0:00:00.416)       0:00:10.245 ********\nskipping: [controller-1]\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nSaturday 18 April 2026  17:51:57 +0000 (0:00:00.078)       0:00:10.324 ********\nchanged: [controller-1]\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:51:57 +0000 (0:00:00.340)       0:00:10.664 ********\nok: [controller-2] => {\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}\nok: [controller-1] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nSaturday 18 April 2026  17:51:57 +0000 (0:00:00.099)       0:00:10.763 ********\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\n[ERROR]: Task failed: Module failed: Request failed\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/download_artifact/tasks/main.yml:19:3\n\n17     msg: \"{{ download_artifact_url }}\"\n18\n19 - name: Download item\n     ^ column 3\n\nfatal: [controller-1]: FAILED! => {\"attempts\": 4, \"censored\": \"the output has been hidden due to the fact that 'no_log: true' was specified for this result\", \"changed\": false}\nFAILED - RETRYING: [controller-1]: Download item (4 retries left).\nchanged: [controller-3]\nchanged: [controller-2]\nFAILED - RETRYING: [controller-1]: Download item (3 retries left).\nFAILED - RETRYING: [controller-1]: Download item (2 retries left).\nFAILED - RETRYING: [controller-1]: Download item (1 retries left).\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:52:20 +0000 (0:00:23.256)       0:00:34.020 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nSaturday 18 April 2026  17:52:20 +0000 (0:00:00.072)       0:00:34.092 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nSaturday 18 April 2026  17:52:21 +0000 (0:00:00.335)       0:00:34.428 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:52:22 +0000 (0:00:01.044)       0:00:35.473 ********\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.2/containerd-2.2.2-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.2/containerd-2.2.2-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nSaturday 18 April 2026  17:52:22 +0000 (0:00:00.109)       0:00:35.582 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:52:23 +0000 (0:00:01.206)       0:00:36.789 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nSaturday 18 April 2026  17:52:26 +0000 (0:00:03.174)       0:00:39.963 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nSaturday 18 April 2026  17:52:26 +0000 (0:00:00.047)       0:00:40.010 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nSaturday 18 April 2026  17:52:26 +0000 (0:00:00.049)       0:00:40.060 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nSaturday 18 April 2026  17:52:26 +0000 (0:00:00.050)       0:00:40.111 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nSaturday 18 April 2026  17:52:33 +0000 (0:00:07.013)       0:00:47.124 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nSaturday 18 April 2026  17:52:34 +0000 (0:00:00.744)       0:00:47.869 ********\nchanged: [controller-3] => (item={'path': '/etc/containerd'})\nchanged: [controller-2] => (item={'path': '/etc/containerd'})\nchanged: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\nchanged: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nSaturday 18 April 2026  17:52:36 +0000 (0:00:01.459)       0:00:49.328 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nSaturday 18 April 2026  17:52:36 +0000 (0:00:00.844)       0:00:50.172 ********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nSaturday 18 April 2026  17:52:37 +0000 (0:00:00.005)       0:00:50.177 ********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nSaturday 18 April 2026  17:52:37 +0000 (0:00:00.006)       0:00:50.184 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nSaturday 18 April 2026  17:52:37 +0000 (0:00:00.888)       0:00:51.073 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nSaturday 18 April 2026  17:52:39 +0000 (0:00:01.716)       0:00:52.790 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nSaturday 18 April 2026  17:52:40 +0000 (0:00:00.795)       0:00:53.586 ********\n[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000167586'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-2]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000167586'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] ***\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.672)       0:00:54.259 ********\nskipping: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.037)       0:00:54.296 ********\nskipping: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.035)       0:00:54.332 ********\nskipping: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.036)       0:00:54.368 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.053)       0:00:54.422 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.058)       0:00:54.480 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.321)       0:00:54.801 ********\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] *******************\nSaturday 18 April 2026  17:52:41 +0000 (0:00:00.071)       0:00:54.873 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:52:42 +0000 (0:00:01.043)       0:00:55.917 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nSaturday 18 April 2026  17:52:42 +0000 (0:00:00.063)       0:00:55.980 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:52:43 +0000 (0:00:00.327)       0:00:56.308 ********\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] *******************\nSaturday 18 April 2026  17:52:43 +0000 (0:00:00.054)       0:00:56.362 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:52:44 +0000 (0:00:01.100)       0:00:57.462 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nSaturday 18 April 2026  17:52:44 +0000 (0:00:00.078)       0:00:57.541 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nSaturday 18 April 2026  17:52:44 +0000 (0:00:00.046)       0:00:57.587 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nSaturday 18 April 2026  17:52:44 +0000 (0:00:00.051)       0:00:57.639 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nSaturday 18 April 2026  17:52:44 +0000 (0:00:00.046)       0:00:57.686 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nSaturday 18 April 2026  17:52:45 +0000 (0:00:00.944)       0:00:58.630 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nSaturday 18 April 2026  17:52:46 +0000 (0:00:00.677)       0:00:59.307 ********\nok: [controller-2] => (item={'path': '/etc/containerd'})\nok: [controller-3] => (item={'path': '/etc/containerd'})\nok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller-3] => (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.sandbox.controller.v1.shim', 'mode': '0o700'})\nok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nSaturday 18 April 2026  17:52:47 +0000 (0:00:01.490)       0:01:00.798 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nSaturday 18 April 2026  17:52:49 +0000 (0:00:01.587)       0:01:02.386 ********\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nSaturday 18 April 2026  17:52:49 +0000 (0:00:00.005)       0:01:02.392 ********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nSaturday 18 April 2026  17:52:49 +0000 (0:00:00.004)       0:01:02.396 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nSaturday 18 April 2026  17:52:49 +0000 (0:00:00.532)       0:01:02.928 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:52:50 +0000 (0:00:00.319)       0:01:03.248 ********\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/crictl-v1.35.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/crictl-v1.35.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nSaturday 18 April 2026  17:52:50 +0000 (0:00:00.088)       0:01:03.336 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:52:50 +0000 (0:00:00.684)       0:01:04.021 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:52:52 +0000 (0:00:01.704)       0:01:05.725 ********\nok: [controller-2] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/critest-v1.35.0-linux-amd64.tar.gz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/critest-v1.35.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nSaturday 18 April 2026  17:52:52 +0000 (0:00:00.088)       0:01:05.814 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:52:53 +0000 (0:00:00.900)       0:01:06.714 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nSaturday 18 April 2026  17:52:55 +0000 (0:00:01.718)       0:01:08.433 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nSaturday 18 April 2026  17:52:55 +0000 (0:00:00.734)       0:01:09.167 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nSaturday 18 April 2026  17:52:56 +0000 (0:00:00.338)       0:01:09.506 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:52:56 +0000 (0:00:00.332)       0:01:09.838 ********\nok: [controller-2] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.0/cni-plugins-linux-amd64-v1.9.0.tgz\"\n}\nok: [controller-3] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.0/cni-plugins-linux-amd64-v1.9.0.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nSaturday 18 April 2026  17:52:56 +0000 (0:00:00.086)       0:01:09.924 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:52:58 +0000 (0:00:01.370)       0:01:11.294 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nSaturday 18 April 2026  17:53:01 +0000 (0:00:03.019)       0:01:14.314 ********\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] ***********\nSaturday 18 April 2026  17:53:01 +0000 (0:00:00.074)       0:01:14.388 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nSaturday 18 April 2026  17:53:02 +0000 (0:00:00.975)       0:01:15.363 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nSaturday 18 April 2026  17:53:02 +0000 (0:00:00.491)       0:01:15.855 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nSaturday 18 April 2026  17:53:03 +0000 (0:00:00.734)       0:01:16.590 ********\nchanged: [controller-3] => (item=br_netfilter)\nchanged: [controller-2] => (item=br_netfilter)\nok: [controller-3] => (item=ip_tables)\nok: [controller-2] => (item=ip_tables)\nchanged: [controller-3] => (item=ip6_tables)\nchanged: [controller-2] => (item=ip6_tables)\nchanged: [controller-3] => (item=nf_conntrack)\nchanged: [controller-2] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nSaturday 18 April 2026  17:53:05 +0000 (0:00:01.606)       0:01:18.197 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nSaturday 18 April 2026  17:53:05 +0000 (0:00:00.323)       0:01:18.520 ********\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] *******************\nSaturday 18 April 2026  17:53:05 +0000 (0:00:00.058)       0:01:18.579 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nSaturday 18 April 2026  17:53:06 +0000 (0:00:01.176)       0:01:19.755 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nSaturday 18 April 2026  17:53:06 +0000 (0:00:00.052)       0:01:19.808 ********\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] *************************\nSaturday 18 April 2026  17:53:06 +0000 (0:00:00.067)       0:01:19.875 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nSaturday 18 April 2026  17:53:06 +0000 (0:00:00.050)       0:01:19.926 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nSaturday 18 April 2026  17:53:11 +0000 (0:00:05.240)       0:01:25.166 ********\nchanged: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\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-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] ***\nSaturday 18 April 2026  17:53:14 +0000 (0:00:02.284)       0:01:27.451 ********\nchanged: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)\nchanged: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller-2] => (item=/etc/kubernetes)\nok: [controller-3] => (item=/etc/kubernetes)\nok: [controller-2] => (item=/etc/kubernetes/manifests)\nok: [controller-3] => (item=/etc/kubernetes/manifests)\n\nTASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********\nSaturday 18 April 2026  17:53:15 +0000 (0:00:00.868)       0:01:28.320 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nSaturday 18 April 2026  17:53:15 +0000 (0:00:00.732)       0:01:29.053 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nSaturday 18 April 2026  17:53:16 +0000 (0:00:00.700)       0:01:29.753 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nSaturday 18 April 2026  17:53:17 +0000 (0:00:00.444)       0:01:30.198 ********\n[ERROR]: Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\n\nTask failed.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:78:7\n\n76       register: kubelet_swapon\n77\n78     - name: Disable swap\n         ^ column 7\n\n<<< caused by >>>\n\nConditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11\n\n81       ignore_errors: \"{{ ansible_check_mode }}\"\n82       when:\n83         - kubelet_swapon.stdout\n             ^ column 11\n\nBroken conditionals can be temporarily allowed with the `ALLOW_BROKEN_CONDITIONALS` configuration option.\n\nfatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\nfatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}\n...ignoring\n...ignoring\n\nTASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********\nSaturday 18 April 2026  17:53:17 +0000 (0:00:00.055)       0:01:30.253 ********\nok: [controller-3] => (item=swap)\nok: [controller-2] => (item=swap)\nok: [controller-3] => (item=none)\nok: [controller-2] => (item=none)\n\nTASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***\nSaturday 18 April 2026  17:53:17 +0000 (0:00:00.785)       0:01:31.039 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nSaturday 18 April 2026  17:53:18 +0000 (0:00:00.685)       0:01:31.725 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nSaturday 18 April 2026  17:53:19 +0000 (0:00:00.751)       0:01:32.476 ********\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nSaturday 18 April 2026  17:53:19 +0000 (0:00:00.006)       0:01:32.483 ********\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nSaturday 18 April 2026  17:53:19 +0000 (0:00:00.004)       0:01:32.488 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nSaturday 18 April 2026  17:53:21 +0000 (0:00:01.876)       0:01:34.365 ********\nchanged: [controller-2]\nchanged: [controller-3]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nSaturday 18 April 2026  17:53:21 +0000 (0:00:00.810)       0:01:35.176 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nSaturday 18 April 2026  17:53:22 +0000 (0:00:00.933)       0:01:36.109 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nSaturday 18 April 2026  17:53:23 +0000 (0:00:00.906)       0:01:37.016 ********\nchanged: [controller-3]\nchanged: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nSaturday 18 April 2026  17:53:24 +0000 (0:00:00.435)       0:01:37.451 ********\nok: [controller-3]\nok: [controller-2]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nSaturday 18 April 2026  17:53:24 +0000 (0:00:00.561)       0:01:38.013 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************\nSaturday 18 April 2026  17:53:24 +0000 (0:00:00.103)       0:01:38.116 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***\nSaturday 18 April 2026  17:53:25 +0000 (0:00:00.104)       0:01:38.220 ********\nok: [controller-2 -> controller-1(199.19.213.159)] => (item=controller-1)\nok: [controller-3 -> controller-1(199.19.213.159)] => (item=controller-1)\nok: [controller-2] => (item=controller-2)\nok: [controller-3 -> controller-2(199.19.213.20)] => (item=controller-2)\nok: [controller-2 -> controller-3(199.19.213.15)] => (item=controller-3)\nok: [controller-3] => (item=controller-3)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nSaturday 18 April 2026  17:53:26 +0000 (0:00:01.056)       0:01:39.277 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.056)       0:01:39.333 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.066)       0:01:39.400 ********\nok: [controller-2] => {\n    \"msg\": \"controller-1\"\n}\nok: [controller-3] => {\n    \"msg\": \"controller-1\"\n}\n\nTASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.055)       0:01:39.455 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.051)       0:01:39.507 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.055)       0:01:39.562 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.052)       0:01:39.615 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.048)       0:01:39.664 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.046)       0:01:39.710 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.048)       0:01:39.759 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.046)       0:01:39.805 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.050)       0:01:39.855 ********\nskipping: [controller-2]\nskipping: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nSaturday 18 April 2026  17:53:26 +0000 (0:00:00.056)       0:01:39.912 ********\nok: [controller-2]\nok: [controller-3]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nSaturday 18 April 2026  17:53:27 +0000 (0:00:00.303)       0:01:40.215 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/join-cluster.yml for controller-2, controller-3\n\nTASK [vexxhost.kubernetes.kubernetes : Generate control-plane certificates for joining cluster] ***\nSaturday 18 April 2026  17:53:27 +0000 (0:00:00.080)       0:01:40.295 ********\n[ERROR]: Task failed: Module failed: Error executing command: [Errno 2] No such file or directory: b'kubeadm'\nOrigin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/join-cluster.yml:5:3\n\n3\n4 ---\n5 - name: Generate control-plane certificates for joining cluster\n    ^ column 3\n\nfatal: [controller-2 -> controller-1(199.19.213.159)]: FAILED! => {\"changed\": false, \"cmd\": \"kubeadm init phase upload-certs --upload-certs\", \"msg\": \"Error executing command.\", \"rc\": 2, \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}\n\nPLAY RECAP *********************************************************************\ncontroller-1               : ok=16   changed=2    unreachable=0    failed=1    skipped=1    rescued=0    ignored=1\ncontroller-2               : ok=85   changed=35   unreachable=0    failed=1    skipped=28   rescued=0    ignored=3\ncontroller-3               : ok=84   changed=35   unreachable=0    failed=0    skipped=25   rescued=0    ignored=2\n\n\nTASKS RECAP ********************************************************************\nSaturday 18 April 2026  17:53:27 +0000 (0:00:00.304)       0:01:40.600 ********\n===============================================================================\nvexxhost.containers.download_artifact : Download item ------------------ 23.26s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 7.01s\nvexxhost.kubernetes.kubelet : Install additional packages --------------- 5.24s\nvexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 3.59s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.17s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.02s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.28s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.72s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.70s\nInstall Debian packages ------------------------------------------------- 1.63s\nvexxhost.containers.cni_plugins : Enable kernel modules in runtime ------ 1.61s\nvexxhost.containers.containerd : Create containerd config file ---------- 1.59s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.49s\nvexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.46s\nvexxhost.containers.containerd : Create folders for configuration ------- 1.46s\nvexxhost.containers.download_artifact : Download item ------------------- 1.37s\nGathering Facts --------------------------------------------------------- 1.30s\nvexxhost.containers.download_artifact : Download item ------------------- 1.21s\nvexxhost.containers.download_artifact : Download item ------------------- 1.18s\nvexxhost.containers.download_artifact : Download item ------------------- 1.10s\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 ansible-core (2.3MiB)",
                                "Downloading cryptography (4.3MiB)",
                                " Downloading cryptography",
                                " Downloading pygments",
                                " Downloading ansible-core",
                                "Installed 36 packages in 49ms",
                                "INFO     Collection 'vexxhost.kubernetes' detected.",
                                "INFO     Scenarios will be used from 'extensions/molecule'",
                                "CRITICAL 'extensions/molecule/default/molecule.yml' glob failed.  Exiting.",
                                "INFO     default scenario not found, disabling shared state.",
                                "INFO     [cluster-upgrade > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy",
                                "INFO     [cluster-upgrade > prerun] Performing prerun with role_name_check=0...",
                                "INFO     [cluster-upgrade > dependency] Executing",
                                "WARNING  [cluster-upgrade > dependency] Missing roles requirements file: requirements.yml",
                                "WARNING  [cluster-upgrade > dependency] Missing collections requirements file: collections.yml",
                                "WARNING  [cluster-upgrade > dependency] Executed: 2 missing (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > cleanup] Executing",
                                "WARNING  [cluster-upgrade > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > destroy] Executing",
                                "WARNING  [cluster-upgrade > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [cluster-upgrade > destroy] Executed: Successful",
                                "INFO     [cluster-upgrade > syntax] Executing",
                                "",
                                "playbook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/cluster-upgrade/converge.yml",
                                "INFO     [cluster-upgrade > syntax] Executed: Successful",
                                "INFO     [cluster-upgrade > create] Executing",
                                "WARNING  [cluster-upgrade > create] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [cluster-upgrade > prepare] Executing",
                                "",
                                "PLAY [Prepare] *****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Saturday 18 April 2026  17:51:46 +0000 (0:00:00.029)       0:00:00.029 ********",
                                "[WARNING]: Host 'controller-1' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-2' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "[WARNING]: Host 'controller-3' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [Install Debian packages] *************************************************",
                                "Saturday 18 April 2026  17:51:48 +0000 (0:00:01.297)       0:00:01.326 ********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Saturday 18 April 2026  17:51:49 +0000 (0:00:01.628)       0:00:02.955 ********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Saturday 18 April 2026  17:51:50 +0000 (0:00:00.900)       0:00:03.856 ********",
                                "changed: [controller-1]",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Saturday 18 April 2026  17:51:51 +0000 (0:00:00.437)       0:00:04.294 ********",
                                "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-2] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller-3] => (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] ****",
                                "Saturday 18 April 2026  17:51:52 +0000 (0:00:01.462)       0:00:05.756 ********",
                                "[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-1] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "failed: [controller-3] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "[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-3] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-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}",
                                "[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-3] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller-2] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "...ignoring",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Saturday 18 April 2026  17:51:53 +0000 (0:00:00.979)       0:00:06.736 ********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Saturday 18 April 2026  17:51:53 +0000 (0:00:00.408)       0:00:07.145 ********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Saturday 18 April 2026  17:51:54 +0000 (0:00:00.334)       0:00:07.479 ********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Saturday 18 April 2026  17:51:54 +0000 (0:00:00.054)       0:00:07.534 ********",
                                "ok: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Saturday 18 April 2026  17:51:54 +0000 (0:00:00.057)       0:00:07.591 ********",
                                "ok: [controller-2]",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Saturday 18 April 2026  17:51:55 +0000 (0:00:00.951)       0:00:08.542 ********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Saturday 18 April 2026  17:51:55 +0000 (0:00:00.327)       0:00:08.870 ********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Saturday 18 April 2026  17:51:55 +0000 (0:00:00.004)       0:00:08.874 ********",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Saturday 18 April 2026  17:51:55 +0000 (0:00:00.002)       0:00:08.876 ********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Saturday 18 April 2026  17:51:55 +0000 (0:00:00.052)       0:00:08.929 ********",
                                "ok: [controller-1]",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Saturday 18 April 2026  17:51:56 +0000 (0:00:00.899)       0:00:09.829 ********",
                                "ok: [controller-1]",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Saturday 18 April 2026  17:51:57 +0000 (0:00:00.416)       0:00:10.245 ********",
                                "skipping: [controller-1]",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Saturday 18 April 2026  17:51:57 +0000 (0:00:00.078)       0:00:10.324 ********",
                                "changed: [controller-1]",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:51:57 +0000 (0:00:00.340)       0:00:10.664 ********",
                                "ok: [controller-2] => {",
                                "    \"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\"",
                                "}",
                                "ok: [controller-1] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Saturday 18 April 2026  17:51:57 +0000 (0:00:00.099)       0:00:10.763 ********",
                                "[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",
                                "[ERROR]: Task failed: Module failed: Request failed",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/download_artifact/tasks/main.yml:19:3",
                                "",
                                "17     msg: \"{{ download_artifact_url }}\"",
                                "18",
                                "19 - name: Download item",
                                "     ^ column 3",
                                "",
                                "fatal: [controller-1]: FAILED! => {\"attempts\": 4, \"censored\": \"the output has been hidden due to the fact that 'no_log: true' was specified for this result\", \"changed\": false}",
                                "FAILED - RETRYING: [controller-1]: Download item (4 retries left).",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "FAILED - RETRYING: [controller-1]: Download item (3 retries left).",
                                "FAILED - RETRYING: [controller-1]: Download item (2 retries left).",
                                "FAILED - RETRYING: [controller-1]: Download item (1 retries left).",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:52:20 +0000 (0:00:23.256)       0:00:34.020 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Saturday 18 April 2026  17:52:20 +0000 (0:00:00.072)       0:00:34.092 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Saturday 18 April 2026  17:52:21 +0000 (0:00:00.335)       0:00:34.428 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:52:22 +0000 (0:00:01.044)       0:00:35.473 ********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.2/containerd-2.2.2-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.2.2/containerd-2.2.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Saturday 18 April 2026  17:52:22 +0000 (0:00:00.109)       0:00:35.582 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:52:23 +0000 (0:00:01.206)       0:00:36.789 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Saturday 18 April 2026  17:52:26 +0000 (0:00:03.174)       0:00:39.963 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Saturday 18 April 2026  17:52:26 +0000 (0:00:00.047)       0:00:40.010 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Saturday 18 April 2026  17:52:26 +0000 (0:00:00.049)       0:00:40.060 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Saturday 18 April 2026  17:52:26 +0000 (0:00:00.050)       0:00:40.111 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Saturday 18 April 2026  17:52:33 +0000 (0:00:07.013)       0:00:47.124 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Saturday 18 April 2026  17:52:34 +0000 (0:00:00.744)       0:00:47.869 ********",
                                "changed: [controller-3] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-2] => (item={'path': '/etc/containerd'})",
                                "changed: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller-3] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "changed: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Saturday 18 April 2026  17:52:36 +0000 (0:00:01.459)       0:00:49.328 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Saturday 18 April 2026  17:52:36 +0000 (0:00:00.844)       0:00:50.172 ********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Saturday 18 April 2026  17:52:37 +0000 (0:00:00.005)       0:00:50.177 ********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Saturday 18 April 2026  17:52:37 +0000 (0:00:00.006)       0:00:50.184 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Saturday 18 April 2026  17:52:37 +0000 (0:00:00.888)       0:00:51.073 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Saturday 18 April 2026  17:52:39 +0000 (0:00:01.716)       0:00:52.790 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Saturday 18 April 2026  17:52:40 +0000 (0:00:00.795)       0:00:53.586 ********",
                                "[ERROR]: Task failed: Module failed: Failed to import the required Python library (kubernetes) on np0000167586'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-2]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000167586'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] ***",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.672)       0:00:54.259 ********",
                                "skipping: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.037)       0:00:54.296 ********",
                                "skipping: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.035)       0:00:54.332 ********",
                                "skipping: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.036)       0:00:54.368 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.053)       0:00:54.422 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.058)       0:00:54.480 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.321)       0:00:54.801 ********",
                                "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] *******************",
                                "Saturday 18 April 2026  17:52:41 +0000 (0:00:00.071)       0:00:54.873 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:52:42 +0000 (0:00:01.043)       0:00:55.917 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Saturday 18 April 2026  17:52:42 +0000 (0:00:00.063)       0:00:55.980 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:52:43 +0000 (0:00:00.327)       0:00:56.308 ********",
                                "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] *******************",
                                "Saturday 18 April 2026  17:52:43 +0000 (0:00:00.054)       0:00:56.362 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:52:44 +0000 (0:00:01.100)       0:00:57.462 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Saturday 18 April 2026  17:52:44 +0000 (0:00:00.078)       0:00:57.541 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Saturday 18 April 2026  17:52:44 +0000 (0:00:00.046)       0:00:57.587 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Saturday 18 April 2026  17:52:44 +0000 (0:00:00.051)       0:00:57.639 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Saturday 18 April 2026  17:52:44 +0000 (0:00:00.046)       0:00:57.686 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Saturday 18 April 2026  17:52:45 +0000 (0:00:00.944)       0:00:58.630 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Saturday 18 April 2026  17:52:46 +0000 (0:00:00.677)       0:00:59.307 ********",
                                "ok: [controller-2] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-3] => (item={'path': '/etc/containerd'})",
                                "ok: [controller-3] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller-3] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller-3] => (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.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "ok: [controller-2] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Saturday 18 April 2026  17:52:47 +0000 (0:00:01.490)       0:01:00.798 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Saturday 18 April 2026  17:52:49 +0000 (0:00:01.587)       0:01:02.386 ********",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Saturday 18 April 2026  17:52:49 +0000 (0:00:00.005)       0:01:02.392 ********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Saturday 18 April 2026  17:52:49 +0000 (0:00:00.004)       0:01:02.396 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Saturday 18 April 2026  17:52:49 +0000 (0:00:00.532)       0:01:02.928 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:52:50 +0000 (0:00:00.319)       0:01:03.248 ********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/crictl-v1.35.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/crictl-v1.35.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Saturday 18 April 2026  17:52:50 +0000 (0:00:00.088)       0:01:03.336 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:52:50 +0000 (0:00:00.684)       0:01:04.021 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:52:52 +0000 (0:00:01.704)       0:01:05.725 ********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/critest-v1.35.0-linux-amd64.tar.gz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.35.0/critest-v1.35.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Saturday 18 April 2026  17:52:52 +0000 (0:00:00.088)       0:01:05.814 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:52:53 +0000 (0:00:00.900)       0:01:06.714 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Saturday 18 April 2026  17:52:55 +0000 (0:00:01.718)       0:01:08.433 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Saturday 18 April 2026  17:52:55 +0000 (0:00:00.734)       0:01:09.167 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Saturday 18 April 2026  17:52:56 +0000 (0:00:00.338)       0:01:09.506 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:52:56 +0000 (0:00:00.332)       0:01:09.838 ********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.0/cni-plugins-linux-amd64-v1.9.0.tgz\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.0/cni-plugins-linux-amd64-v1.9.0.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Saturday 18 April 2026  17:52:56 +0000 (0:00:00.086)       0:01:09.924 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:52:58 +0000 (0:00:01.370)       0:01:11.294 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Saturday 18 April 2026  17:53:01 +0000 (0:00:03.019)       0:01:14.314 ********",
                                "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] ***********",
                                "Saturday 18 April 2026  17:53:01 +0000 (0:00:00.074)       0:01:14.388 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Saturday 18 April 2026  17:53:02 +0000 (0:00:00.975)       0:01:15.363 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Saturday 18 April 2026  17:53:02 +0000 (0:00:00.491)       0:01:15.855 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Saturday 18 April 2026  17:53:03 +0000 (0:00:00.734)       0:01:16.590 ********",
                                "changed: [controller-3] => (item=br_netfilter)",
                                "changed: [controller-2] => (item=br_netfilter)",
                                "ok: [controller-3] => (item=ip_tables)",
                                "ok: [controller-2] => (item=ip_tables)",
                                "changed: [controller-3] => (item=ip6_tables)",
                                "changed: [controller-2] => (item=ip6_tables)",
                                "changed: [controller-3] => (item=nf_conntrack)",
                                "changed: [controller-2] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Saturday 18 April 2026  17:53:05 +0000 (0:00:01.606)       0:01:18.197 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Saturday 18 April 2026  17:53:05 +0000 (0:00:00.323)       0:01:18.520 ********",
                                "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] *******************",
                                "Saturday 18 April 2026  17:53:05 +0000 (0:00:00.058)       0:01:18.579 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Saturday 18 April 2026  17:53:06 +0000 (0:00:01.176)       0:01:19.755 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Saturday 18 April 2026  17:53:06 +0000 (0:00:00.052)       0:01:19.808 ********",
                                "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] *************************",
                                "Saturday 18 April 2026  17:53:06 +0000 (0:00:00.067)       0:01:19.875 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Saturday 18 April 2026  17:53:06 +0000 (0:00:00.050)       0:01:19.926 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Saturday 18 April 2026  17:53:11 +0000 (0:00:05.240)       0:01:25.166 ********",
                                "changed: [controller-2] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-2] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller-3] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-2] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller-3] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller-2] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "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-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] ***",
                                "Saturday 18 April 2026  17:53:14 +0000 (0:00:02.284)       0:01:27.451 ********",
                                "changed: [controller-2] => (item=/etc/systemd/system/kubelet.service.d)",
                                "changed: [controller-3] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller-2] => (item=/etc/kubernetes)",
                                "ok: [controller-3] => (item=/etc/kubernetes)",
                                "ok: [controller-2] => (item=/etc/kubernetes/manifests)",
                                "ok: [controller-3] => (item=/etc/kubernetes/manifests)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********",
                                "Saturday 18 April 2026  17:53:15 +0000 (0:00:00.868)       0:01:28.320 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Saturday 18 April 2026  17:53:15 +0000 (0:00:00.732)       0:01:29.053 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Saturday 18 April 2026  17:53:16 +0000 (0:00:00.700)       0:01:29.753 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Saturday 18 April 2026  17:53:17 +0000 (0:00:00.444)       0:01:30.198 ********",
                                "[ERROR]: Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.",
                                "",
                                "Task failed.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:78:7",
                                "",
                                "76       register: kubelet_swapon",
                                "77",
                                "78     - name: Disable swap",
                                "         ^ column 7",
                                "",
                                "<<< caused by >>>",
                                "",
                                "Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11",
                                "",
                                "81       ignore_errors: \"{{ ansible_check_mode }}\"",
                                "82       when:",
                                "83         - kubelet_swapon.stdout",
                                "             ^ column 11",
                                "",
                                "Broken conditionals can be temporarily allowed with the `ALLOW_BROKEN_CONDITIONALS` configuration option.",
                                "",
                                "fatal: [controller-2]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "fatal: [controller-3]: FAILED! => {\"changed\": false, \"msg\": \"Task failed: Conditional result (False) was derived from value of type 'str' at '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/tasks/main.yml:83:11'. Conditionals must have a boolean result.\"}",
                                "...ignoring",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********",
                                "Saturday 18 April 2026  17:53:17 +0000 (0:00:00.055)       0:01:30.253 ********",
                                "ok: [controller-3] => (item=swap)",
                                "ok: [controller-2] => (item=swap)",
                                "ok: [controller-3] => (item=none)",
                                "ok: [controller-2] => (item=none)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***",
                                "Saturday 18 April 2026  17:53:17 +0000 (0:00:00.785)       0:01:31.039 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Saturday 18 April 2026  17:53:18 +0000 (0:00:00.685)       0:01:31.725 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Saturday 18 April 2026  17:53:19 +0000 (0:00:00.751)       0:01:32.476 ********",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Saturday 18 April 2026  17:53:19 +0000 (0:00:00.006)       0:01:32.483 ********",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Saturday 18 April 2026  17:53:19 +0000 (0:00:00.004)       0:01:32.488 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Saturday 18 April 2026  17:53:21 +0000 (0:00:01.876)       0:01:34.365 ********",
                                "changed: [controller-2]",
                                "changed: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Saturday 18 April 2026  17:53:21 +0000 (0:00:00.810)       0:01:35.176 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Saturday 18 April 2026  17:53:22 +0000 (0:00:00.933)       0:01:36.109 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Saturday 18 April 2026  17:53:23 +0000 (0:00:00.906)       0:01:37.016 ********",
                                "changed: [controller-3]",
                                "changed: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Saturday 18 April 2026  17:53:24 +0000 (0:00:00.435)       0:01:37.451 ********",
                                "ok: [controller-3]",
                                "ok: [controller-2]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Saturday 18 April 2026  17:53:24 +0000 (0:00:00.561)       0:01:38.013 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************",
                                "Saturday 18 April 2026  17:53:24 +0000 (0:00:00.103)       0:01:38.116 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***",
                                "Saturday 18 April 2026  17:53:25 +0000 (0:00:00.104)       0:01:38.220 ********",
                                "ok: [controller-2 -> controller-1(199.19.213.159)] => (item=controller-1)",
                                "ok: [controller-3 -> controller-1(199.19.213.159)] => (item=controller-1)",
                                "ok: [controller-2] => (item=controller-2)",
                                "ok: [controller-3 -> controller-2(199.19.213.20)] => (item=controller-2)",
                                "ok: [controller-2 -> controller-3(199.19.213.15)] => (item=controller-3)",
                                "ok: [controller-3] => (item=controller-3)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:01.056)       0:01:39.277 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.056)       0:01:39.333 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.066)       0:01:39.400 ********",
                                "ok: [controller-2] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "ok: [controller-3] => {",
                                "    \"msg\": \"controller-1\"",
                                "}",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.055)       0:01:39.455 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.051)       0:01:39.507 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.055)       0:01:39.562 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.052)       0:01:39.615 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.048)       0:01:39.664 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.046)       0:01:39.710 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.048)       0:01:39.759 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.046)       0:01:39.805 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.050)       0:01:39.855 ********",
                                "skipping: [controller-2]",
                                "skipping: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Saturday 18 April 2026  17:53:26 +0000 (0:00:00.056)       0:01:39.912 ********",
                                "ok: [controller-2]",
                                "ok: [controller-3]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Saturday 18 April 2026  17:53:27 +0000 (0:00:00.303)       0:01:40.215 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/join-cluster.yml for controller-2, controller-3",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Generate control-plane certificates for joining cluster] ***",
                                "Saturday 18 April 2026  17:53:27 +0000 (0:00:00.080)       0:01:40.295 ********",
                                "[ERROR]: Task failed: Module failed: Error executing command: [Errno 2] No such file or directory: b'kubeadm'",
                                "Origin: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/join-cluster.yml:5:3",
                                "",
                                "3",
                                "4 ---",
                                "5 - name: Generate control-plane certificates for joining cluster",
                                "    ^ column 3",
                                "",
                                "fatal: [controller-2 -> controller-1(199.19.213.159)]: FAILED! => {\"changed\": false, \"cmd\": \"kubeadm init phase upload-certs --upload-certs\", \"msg\": \"Error executing command.\", \"rc\": 2, \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller-1               : ok=16   changed=2    unreachable=0    failed=1    skipped=1    rescued=0    ignored=1",
                                "controller-2               : ok=85   changed=35   unreachable=0    failed=1    skipped=28   rescued=0    ignored=3",
                                "controller-3               : ok=84   changed=35   unreachable=0    failed=0    skipped=25   rescued=0    ignored=2",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Saturday 18 April 2026  17:53:27 +0000 (0:00:00.304)       0:01:40.600 ********",
                                "===============================================================================",
                                "vexxhost.containers.download_artifact : Download item ------------------ 23.26s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 7.01s",
                                "vexxhost.kubernetes.kubelet : Install additional packages --------------- 5.24s",
                                "vexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 3.59s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.17s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.02s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 2.28s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.72s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.70s",
                                "Install Debian packages ------------------------------------------------- 1.63s",
                                "vexxhost.containers.cni_plugins : Enable kernel modules in runtime ------ 1.61s",
                                "vexxhost.containers.containerd : Create containerd config file ---------- 1.59s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.49s",
                                "vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack ---------------- 1.46s",
                                "vexxhost.containers.containerd : Create folders for configuration ------- 1.46s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.37s",
                                "Gathering Facts --------------------------------------------------------- 1.30s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.21s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.18s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.10s",
                                "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-0011-c199-6674-000000000008-1-controller1"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:37.838495Z",
                            "start": "2026-04-18T17:51:24.921239Z"
                        },
                        "id": "0242ac17-0011-c199-6674-000000000008",
                        "name": "Run Molecule scenario"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller-1": {
            "changed": 2,
            "failures": 1,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "post",
    "playbook": "github.com/vexxhost/ansible-collection-kubernetes/test-playbooks/molecule/post.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-18T17:53:44.894761Z",
                    "start": "2026-04-18T17:53:38.581084Z"
                },
                "id": "0242ac17-0011-d8af-eaea-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-0011-d8af-eaea-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:39.195383Z",
                            "start": "2026-04-18T17:53:38.592534Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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.034014",
                            "end": "2026-04-18 17:53:39.630533",
                            "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-0011-d8af-eaea-00000000000c-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:39.596519",
                            "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\nenvironment: line 1: kubectl: command not found\nxargs: environment: line 1: kubectl: command not found\nwarning: 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\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                            "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",
                                "environment: line 1: kubectl: command not found",
                                "xargs: environment: line 1: kubectl: command not found",
                                "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",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value"
                            ],
                            "zuul_log_id": "0242ac17-0011-d8af-eaea-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.237650",
                            "end": "2026-04-18 17:53:39.836488",
                            "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-0011-d8af-eaea-00000000000c-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:39.598838",
                            "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\nE0418 17:53:39.672856    3465 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\"\nE0418 17:53:39.673298    3469 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\"\nE0418 17:53:39.675065    3465 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\"\nE0418 17:53:39.675097    3469 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\"\nE0418 17:53:39.676766    3469 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\"\nE0418 17:53:39.677000    3465 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\"\nE0418 17:53:39.678458    3469 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\"\nE0418 17:53:39.678996    3465 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\"\nE0418 17:53:39.680059    3469 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\"\nE0418 17:53:39.680935    3465 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\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0418 17:53:39.742374    3489 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\"\nE0418 17:53:39.744021    3489 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\"\nE0418 17:53:39.746434    3489 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\"\nE0418 17:53:39.748074    3489 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\"\nE0418 17:53:39.750072    3496 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\"\nE0418 17:53:39.750115    3489 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?\nE0418 17:53:39.752625    3496 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\"\nE0418 17:53:39.754693    3496 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\"\nE0418 17:53:39.757283    3496 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\"\nE0418 17:53:39.759245    3496 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\nE0418 17:53:39.818761    3513 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\"\nE0418 17:53:39.821070    3513 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\"\nE0418 17:53:39.822951    3513 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\"\nE0418 17:53:39.824715    3513 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\"\nE0418 17:53:39.826458    3513 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",
                                "E0418 17:53:39.672856    3465 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\"",
                                "E0418 17:53:39.673298    3469 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\"",
                                "E0418 17:53:39.675065    3465 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\"",
                                "E0418 17:53:39.675097    3469 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\"",
                                "E0418 17:53:39.676766    3469 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\"",
                                "E0418 17:53:39.677000    3465 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\"",
                                "E0418 17:53:39.678458    3469 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\"",
                                "E0418 17:53:39.678996    3465 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\"",
                                "E0418 17:53:39.680059    3469 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\"",
                                "E0418 17:53:39.680935    3465 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",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0418 17:53:39.742374    3489 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\"",
                                "E0418 17:53:39.744021    3489 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\"",
                                "E0418 17:53:39.746434    3489 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\"",
                                "E0418 17:53:39.748074    3489 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\"",
                                "E0418 17:53:39.750072    3496 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\"",
                                "E0418 17:53:39.750115    3489 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?",
                                "E0418 17:53:39.752625    3496 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\"",
                                "E0418 17:53:39.754693    3496 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\"",
                                "E0418 17:53:39.757283    3496 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\"",
                                "E0418 17:53:39.759245    3496 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",
                                "E0418 17:53:39.818761    3513 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\"",
                                "E0418 17:53:39.821070    3513 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\"",
                                "E0418 17:53:39.822951    3513 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\"",
                                "E0418 17:53:39.824715    3513 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\"",
                                "E0418 17:53:39.826458    3513 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-0011-d8af-eaea-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.240834",
                            "end": "2026-04-18 17:53:39.847539",
                            "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-0011-d8af-eaea-00000000000c-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:39.606705",
                            "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\nE0418 17:53:39.682779    3436 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\"\nE0418 17:53:39.682843    3433 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\"\nE0418 17:53:39.684829    3433 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\"\nE0418 17:53:39.685214    3436 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\"\nE0418 17:53:39.686265    3433 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\"\nE0418 17:53:39.687052    3436 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\"\nE0418 17:53:39.688045    3433 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\"\nE0418 17:53:39.689237    3436 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\"\nE0418 17:53:39.691054    3433 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\"\nE0418 17:53:39.691131    3436 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\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0418 17:53:39.757570    3462 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\"\nE0418 17:53:39.759245    3462 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\"\nE0418 17:53:39.759338    3460 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\"\nE0418 17:53:39.761717    3462 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\"\nE0418 17:53:39.761863    3460 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\"\nE0418 17:53:39.763263    3462 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\"\nE0418 17:53:39.763737    3460 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\"\nE0418 17:53:39.765030    3462 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\"\nE0418 17:53:39.765534    3460 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?\nE0418 17:53:39.767290    3460 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\nE0418 17:53:39.828118    3479 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\"\nE0418 17:53:39.830606    3479 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\"\nE0418 17:53:39.832846    3479 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\"\nE0418 17:53:39.834667    3479 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\"\nE0418 17:53:39.836426    3479 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",
                                "E0418 17:53:39.682779    3436 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\"",
                                "E0418 17:53:39.682843    3433 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\"",
                                "E0418 17:53:39.684829    3433 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\"",
                                "E0418 17:53:39.685214    3436 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\"",
                                "E0418 17:53:39.686265    3433 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\"",
                                "E0418 17:53:39.687052    3436 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\"",
                                "E0418 17:53:39.688045    3433 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\"",
                                "E0418 17:53:39.689237    3436 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\"",
                                "E0418 17:53:39.691054    3433 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\"",
                                "E0418 17:53:39.691131    3436 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",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0418 17:53:39.757570    3462 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\"",
                                "E0418 17:53:39.759245    3462 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\"",
                                "E0418 17:53:39.759338    3460 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\"",
                                "E0418 17:53:39.761717    3462 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\"",
                                "E0418 17:53:39.761863    3460 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\"",
                                "E0418 17:53:39.763263    3462 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\"",
                                "E0418 17:53:39.763737    3460 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\"",
                                "E0418 17:53:39.765030    3462 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\"",
                                "E0418 17:53:39.765534    3460 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?",
                                "E0418 17:53:39.767290    3460 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",
                                "E0418 17:53:39.828118    3479 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\"",
                                "E0418 17:53:39.830606    3479 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\"",
                                "E0418 17:53:39.832846    3479 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\"",
                                "E0418 17:53:39.834667    3479 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\"",
                                "E0418 17:53:39.836426    3479 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-0011-d8af-eaea-00000000000c-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-d8af-eaea-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:39.896657Z",
                            "start": "2026-04-18T17:53:39.246076Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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-0011-d8af-eaea-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:40.158852Z",
                            "start": "2026-04-18T17:53:39.900548Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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.012324",
                            "end": "2026-04-18 17:53:40.437344",
                            "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-0011-d8af-eaea-00000000000e-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:40.425020",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "environment: line 5: kubectl: command not found\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\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                            "stdout_lines": [
                                "environment: line 5: kubectl: command not found",
                                "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"
                            ],
                            "zuul_log_id": "0242ac17-0011-d8af-eaea-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.079573",
                            "end": "2026-04-18 17:53:40.528280",
                            "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-0011-d8af-eaea-00000000000e-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:40.448707",
                            "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\nE0418 17:53:40.510866    3545 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\"\nE0418 17:53:40.512885    3545 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\"\nE0418 17:53:40.515622    3545 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\"\nE0418 17:53:40.518221    3545 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\"\nE0418 17:53:40.520312    3545 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",
                                "E0418 17:53:40.510866    3545 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\"",
                                "E0418 17:53:40.512885    3545 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\"",
                                "E0418 17:53:40.515622    3545 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\"",
                                "E0418 17:53:40.518221    3545 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\"",
                                "E0418 17:53:40.520312    3545 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-0011-d8af-eaea-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.076622",
                            "end": "2026-04-18 17:53:40.534071",
                            "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-0011-d8af-eaea-00000000000e-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:40.457449",
                            "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\nE0418 17:53:40.516823    3510 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\"\nE0418 17:53:40.518918    3510 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\"\nE0418 17:53:40.520628    3510 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\"\nE0418 17:53:40.522226    3510 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\"\nE0418 17:53:40.524036    3510 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",
                                "E0418 17:53:40.516823    3510 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\"",
                                "E0418 17:53:40.518918    3510 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\"",
                                "E0418 17:53:40.520628    3510 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\"",
                                "E0418 17:53:40.522226    3510 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\"",
                                "E0418 17:53:40.524036    3510 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-0011-d8af-eaea-00000000000e-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-d8af-eaea-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:40.741140Z",
                            "start": "2026-04-18T17:53:40.211060Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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.19.213.159:/tmp/logs/objects /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.159:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-1\ncd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/namespaced/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "created directory /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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.19.213.20:/tmp/logs/objects /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.20:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-2\ncd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/namespaced/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "created directory /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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.19.213.15:/tmp/logs/objects /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.15:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-3\ncd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/namespaced/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "created directory /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-3",
                                "cd+++++++++ objects/",
                                "cd+++++++++ objects/cluster/",
                                "cd+++++++++ objects/namespaced/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-d8af-eaea-000000000009",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:41.482544Z",
                            "start": "2026-04-18T17:53:40.745999Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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-0011-d8af-eaea-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:41.758064Z",
                            "start": "2026-04-18T17:53:41.497240Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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-0011-d8af-eaea-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:42.025073Z",
                            "start": "2026-04-18T17:53:41.763619Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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.013847",
                            "end": "2026-04-18 17:53:42.304854",
                            "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-0011-d8af-eaea-000000000015-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:42.291007",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "environment: line 3: kubectl: command not found",
                            "stdout_lines": [
                                "environment: line 3: kubectl: command not found"
                            ],
                            "zuul_log_id": "0242ac17-0011-d8af-eaea-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.082650",
                            "end": "2026-04-18 17:53:42.377863",
                            "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-0011-d8af-eaea-000000000015-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:42.295213",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0418 17:53:42.360808    3598 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\"\nE0418 17:53:42.362942    3598 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\"\nE0418 17:53:42.365020    3598 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\"\nE0418 17:53:42.366775    3598 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\"\nE0418 17:53:42.368640    3598 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": [
                                "E0418 17:53:42.360808    3598 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\"",
                                "E0418 17:53:42.362942    3598 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\"",
                                "E0418 17:53:42.365020    3598 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\"",
                                "E0418 17:53:42.366775    3598 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\"",
                                "E0418 17:53:42.368640    3598 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-0011-d8af-eaea-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.085544",
                            "end": "2026-04-18 17:53:42.399133",
                            "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-0011-d8af-eaea-000000000015-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:42.313589",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0418 17:53:42.382880    3564 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\"\nE0418 17:53:42.384886    3564 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\"\nE0418 17:53:42.387015    3564 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\"\nE0418 17:53:42.389264    3564 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\"\nE0418 17:53:42.391355    3564 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": [
                                "E0418 17:53:42.382880    3564 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\"",
                                "E0418 17:53:42.384886    3564 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\"",
                                "E0418 17:53:42.387015    3564 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\"",
                                "E0418 17:53:42.389264    3564 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\"",
                                "E0418 17:53:42.391355    3564 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-0011-d8af-eaea-000000000015-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-d8af-eaea-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:42.609476Z",
                            "start": "2026-04-18T17:53:42.076433Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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.19.213.159:/tmp/logs/pod-logs /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.159:/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.19.213.20:/tmp/logs/pod-logs /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.20:/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.19.213.15:/tmp/logs/pod-logs /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.15:/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-0011-d8af-eaea-000000000011",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:43.232827Z",
                            "start": "2026-04-18T17:53:42.613073Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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-0011-d8af-eaea-000000000018",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:43.737279Z",
                            "start": "2026-04-18T17:53:43.248333Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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.007993",
                            "end": "2026-04-18 17:53:44.012779",
                            "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-0011-d8af-eaea-00000000001c-1-controller1",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:44.004786",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/bin/bash: line 3: kubectl: command not found",
                            "stdout_lines": [
                                "/bin/bash: line 3: kubectl: command not found"
                            ],
                            "zuul_log_id": "0242ac17-0011-d8af-eaea-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.085335",
                            "end": "2026-04-18 17:53:44.114915",
                            "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-0011-d8af-eaea-00000000001c-1-controller2",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:44.029580",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0418 17:53:44.097451    3658 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\"\nE0418 17:53:44.100493    3658 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\"\nE0418 17:53:44.102746    3658 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\"\nE0418 17:53:44.104824    3658 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\"\nE0418 17:53:44.106829    3658 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": [
                                "E0418 17:53:44.097451    3658 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\"",
                                "E0418 17:53:44.100493    3658 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\"",
                                "E0418 17:53:44.102746    3658 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\"",
                                "E0418 17:53:44.104824    3658 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\"",
                                "E0418 17:53:44.106829    3658 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-0011-d8af-eaea-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.080679",
                            "end": "2026-04-18 17:53:44.104457",
                            "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-0011-d8af-eaea-00000000001c-1-controller3",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-18 17:53:44.023778",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0418 17:53:44.089023    3627 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\"\nE0418 17:53:44.091138    3627 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\"\nE0418 17:53:44.093216    3627 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\"\nE0418 17:53:44.095057    3627 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\"\nE0418 17:53:44.097010    3627 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": [
                                "E0418 17:53:44.089023    3627 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\"",
                                "E0418 17:53:44.091138    3627 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\"",
                                "E0418 17:53:44.093216    3627 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\"",
                                "E0418 17:53:44.095057    3627 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\"",
                                "E0418 17:53:44.097010    3627 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-0011-d8af-eaea-00000000001c-1-controller3"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-d8af-eaea-000000000018",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:44.319889Z",
                            "start": "2026-04-18T17:53:43.790343Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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.19.213.159:/tmp/logs/helm /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.159:/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.19.213.20:/tmp/logs/helm /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.20:/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.19.213.15:/tmp/logs/helm /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.15:/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-0011-d8af-eaea-000000000018",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:44.894761Z",
                            "start": "2026-04-18T17:53:44.323543Z"
                        },
                        "id": "0242ac17-0011-d8af-eaea-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-04-18T17:53:49.498579Z",
                    "start": "2026-04-18T17:53:45.708161Z"
                },
                "id": "0242ac17-0011-6360-b2b0-000000000004",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller-1": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-1"
                            },
                            "changed": false
                        },
                        "controller-2": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-2"
                            },
                            "changed": false
                        },
                        "controller-3": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-3"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-6360-b2b0-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:45.805073Z",
                            "start": "2026-04-18T17:53:45.721549Z"
                        },
                        "id": "0242ac17-0011-6360-b2b0-00000000000a",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-2": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        },
                        "controller-3": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "log_path is not defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-6360-b2b0-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:45.867663Z",
                            "start": "2026-04-18T17:53:45.808872Z"
                        },
                        "id": "0242ac17-0011-6360-b2b0-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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-1"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-1",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-1"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/artifacts"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-2"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-2",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-2"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-3"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-3",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-3"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/artifacts"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/docs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-6360-b2b0-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:46.838576Z",
                            "start": "2026-04-18T17:53:45.877471Z"
                        },
                        "id": "0242ac17-0011-6360-b2b0-00000000000c",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "controller-1": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.159:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-1/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.159:/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-1",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.159:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.159:/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.159:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.159:/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/72e1e456626f4d82a87e02068e87a09f/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        },
                        "controller-2": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.20:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-2/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.20:/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-2",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.20:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.20:/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.20:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.20:/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/72e1e456626f4d82a87e02068e87a09f/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        },
                        "controller-3": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.15:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/logs/controller-3/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.15:/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/72e1e456626f4d82a87e02068e87a09f/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.19.213.15:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.15:/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": false,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.15:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.15:/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/72e1e456626f4d82a87e02068e87a09f/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-6360-b2b0-000000000008",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:48.656917Z",
                            "start": "2026-04-18T17:53:46.846076Z"
                        },
                        "id": "0242ac17-0011-6360-b2b0-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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts/* /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.159725",
                                    "end": "2026-04-18 17:53:49.213476",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/artifacts/* /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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-04-18 17:53:49.053751",
                                    "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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs/* /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.006695",
                                    "end": "2026-04-18 17:53:49.456598",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/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/72e1e456626f4d82a87e02068e87a09f/work/docs/* /var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/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-04-18 17:53:49.449903",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-6360-b2b0-000000000011",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:49.498579Z",
                            "start": "2026-04-18T17:53:48.673751Z"
                        },
                        "id": "0242ac17-0011-6360-b2b0-000000000013",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-04-18T17:53:50.210473Z",
                    "start": "2026-04-18T17:53:49.520413Z"
                },
                "id": "0242ac17-0011-6360-b2b0-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC9TKyu4RJdRx6LKwy0jUE5rZg9k7/WY4k3PqWwRxWn07kzw8ncZzRxCpQbLR2wTdRH3Qghm6VkVQzosjbRBFb2igZuyRqw093f48WiY5c0SPlvVcCbI7gWlxJDB25+OQCYynSuVzy7YZOHR2C1ShbWQbaMpK+/gTMLUPVy1K/GTgXJirBPTO8E2b3hy8AxT4DWlUwTFep/p8kuQq57TZuoyQQRx3YWOMJSqiq3YNkH3rBa+0sMvWbjZ/eKhpwhb8IrMXqaOjqYhUiQ7UNMUx+QOdWU4HL0O9QK4KaW9wKJaicup1KWgSBULnJCGzFwSJSMIM4csHMUdZQ0YMfHC/AgHTb2hVnPizfqlgMnLMZIzEDKHYje8F/El9TKmPhR+902GOI6h8BT+HIPS2x1e7zP9pGeMPD0cP/eDbNx8q77Ahz3TWUSKZlVMSsUzRW5jseyeGXcq8lUOEU+t3j+7eTfgTdo3830vLTTWJZnPjd7+sUQ54ZV1VoQ1rNXikbJlgc= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-6360-b2b0-000000000018",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/72e1e456626f4d82a87e02068e87a09f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-18T17:53:50.210473Z",
                            "start": "2026-04-18T17:53:49.525946Z"
                        },
                        "id": "0242ac17-0011-6360-b2b0-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
}
]
