[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-16T17:21:18.039719Z",
                    "start": "2026-04-16T17:21:15.053567Z"
                },
                "id": "0242ac17-0011-afdd-b19d-000000000002",
                "name": "localhost"
            },
            "tasks": [
                {
                    "hosts": {
                        "localhost": {
                            "action": "gather_facts",
                            "ansible_facts": {
                                "ansible_apparmor": {
                                    "status": "disabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "NA",
                                "ansible_bios_vendor": "NA",
                                "ansible_bios_version": "NA",
                                "ansible_board_asset_tag": "NA",
                                "ansible_board_name": "NA",
                                "ansible_board_serial": "NA",
                                "ansible_board_vendor": "NA",
                                "ansible_board_version": "NA",
                                "ansible_chassis_asset_tag": "NA",
                                "ansible_chassis_serial": "NA",
                                "ansible_chassis_vendor": "NA",
                                "ansible_chassis_version": "NA",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": "ttyS0",
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_date_time": {
                                    "date": "2026-04-16",
                                    "day": "16",
                                    "epoch": "1776360075",
                                    "epoch_int": "1776360075",
                                    "hour": "17",
                                    "iso8601": "2026-04-16T17:21:15Z",
                                    "iso8601_basic": "20260416T172115882029",
                                    "iso8601_basic_short": "20260416T172115",
                                    "iso8601_micro": "2026-04-16T17:21:15.882029Z",
                                    "minute": "21",
                                    "month": "04",
                                    "second": "15",
                                    "time": "17:21:15",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Thursday",
                                    "weekday_number": "4",
                                    "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/86f11c139d9342c59c6219f08e70739e/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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": "1249106",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-21IJwaKU7GQ6/agent.1249105",
                                    "TMP": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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": 3.2119140625,
                                    "1m": 3.9453125,
                                    "5m": 3.06201171875
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 6630,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 16753,
                                        "used": 15337
                                    },
                                    "real": {
                                        "free": 6630,
                                        "total": 32090,
                                        "used": 25460
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 188460360,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 75480357,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 57656860,
                                        "inode_total": 67108864,
                                        "inode_used": 9452004,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 771933634560,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8688854,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 31912726,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16456279,
                                        "inode_total": 20643840,
                                        "inode_used": 4187561,
                                        "mount": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 35589545984,
                                        "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": 40023805,
                                "ansible_user_dir": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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-16T17:21:15.958747Z",
                            "start": "2026-04-16T17:21:15.060938Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000002a",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:15.986244Z",
                            "start": "2026-04-16T17:21:15.964369Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000008",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "86f/oss/86f11c139d9342c59c6219f08e70739e"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000054",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:16.031534Z",
                            "start": "2026-04-16T17:21:16.000654Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000056",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.16\nJob: atmosphere-molecule-aio-openvswitch\nPipeline: check\nExecutor: 0a8996d2b663\nTriggered by: https://github.com/vexxhost/atmosphere/pull/3839\nEvent ID: 8525d1d0-39b8-11f1-83af-fc2625070b44\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:16.081780Z",
                            "start": "2026-04-16T17:21:16.039455Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000009",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: instance\nHostname: np0000166763\nUsername: zuul\nDistro: Ubuntu 22.04\nProvider: yul1\nRegion: ca-ymq-1\nLabel: ubuntu-jammy-16\nProduct Name: OpenStack Nova\nInterface IP: 199.204.45.132\n",
                                    "zj_item": "instance"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:16.189300Z",
                            "start": "2026-04-16T17:21:16.085887Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000000a",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:16.656416Z",
                            "start": "2026-04-16T17:21:16.196367Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000000f",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "62c95b8d842362158af89311d393d09aa1ad3f7c",
                            "dest": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "62c95b8d842362158af89311d393d09aa1ad3f7c",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/.ansible/tmp/ansible-tmp-1776360076.690741-84-210095399359451/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "b5cd5a81aaaebe3be2f7c8a0b3870b35",
                            "mode": "0644",
                            "owner": "root",
                            "size": 25205,
                            "src": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/.ansible/tmp/ansible-tmp-1776360076.690741-84-210095399359451/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:18.039719Z",
                            "start": "2026-04-16T17:21:16.661232Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000010",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-04-16T17:21:24.995798Z",
                    "start": "2026-04-16T17:21:18.049393Z"
                },
                "id": "0242ac17-0011-afdd-b19d-000000000011",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "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/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:18.287789Z",
                            "start": "2026-04-16T17:21:18.058644Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000018",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:18.335276Z",
                            "start": "2026-04-16T17:21:18.299108Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000019",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.435551",
                            "end": "2026-04-16 17:21:19.156816",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_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-afdd-b19d-00000000009c-0-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:21:18.721265",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa.pub\nThe key fingerprint is:\nSHA256:lBZv+Ke3t0yINFyi3PrIUvh/NVtf1me1VEwKD7ETTLw zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|        .  +*. o.|\n|         =  o* .o|\n|        = + +.o .|\n|       + * oE. ..|\n|       .S * . . +|\n|      . .o = .o.B|\n|       o. o o..*+|\n|      ...o ..+o .|\n|       .o.o...o. |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:lBZv+Ke3t0yINFyi3PrIUvh/NVtf1me1VEwKD7ETTLw zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|        .  +*. o.|",
                                "|         =  o* .o|",
                                "|        = + +.o .|",
                                "|       + * oE. ..|",
                                "|       .S * . . +|",
                                "|      . .o = .o.B|",
                                "|       o. o o..*+|",
                                "|      ...o ..+o .|",
                                "|       .o.o...o. |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0011-afdd-b19d-00000000009c-0-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:19.201978Z",
                            "start": "2026-04-16T17:21:18.353939Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000009c",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:19.241985Z",
                            "start": "2026-04-16T17:21:19.206810Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000009d",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:19.285198Z",
                            "start": "2026-04-16T17:21:19.259055Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000bc",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCzD3Vgx/rksrI1huNyEis4+32MbiBRkgNLnCZ3Uprb1ht3MGr3s2FdoZwlM23Jp32Nf87JhCF6Ze/J9ja8GG3OuHrEqc6pjoAyGPtBsoVhEHaF1C1KfNWtusDuSvkbBW3rF5vuGd6mF5adMspX9Chap65goprjeKE8WDP2nyp7U1O9mhX+D2a+DanX44/+tToAUBgwdfzjfXxnDq3PLuSK0eGX69UhkBMSfECAqITkD+vQLa+VfcPzNpARSaEF7JgGIFvLum8b8mZBeMqkvpr/Rsvg4i31e/xesaScRED3vgIf5dTGAUOtlLk35jCTjnAlEXKG63cZeLANvqKTXpQqlQwpO15B1SeiZ8h+yGSLzoooRSNa0/F1kCoXaZEVUFMJpqriyyw4PLq2jzn2RQMOHu/O6g0OGtOsBMaDCYt6L37S5gJqSKrH5Gn6A3pK+E3YRhd3oclt9aalMek0DJvJj4fsB0grq+3pg7ZaeUawUE9wKPP+PchmCfaLrRfGSmc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCzD3Vgx/rksrI1huNyEis4+32MbiBRkgNLnCZ3Uprb1ht3MGr3s2FdoZwlM23Jp32Nf87JhCF6Ze/J9ja8GG3OuHrEqc6pjoAyGPtBsoVhEHaF1C1KfNWtusDuSvkbBW3rF5vuGd6mF5adMspX9Chap65goprjeKE8WDP2nyp7U1O9mhX+D2a+DanX44/+tToAUBgwdfzjfXxnDq3PLuSK0eGX69UhkBMSfECAqITkD+vQLa+VfcPzNpARSaEF7JgGIFvLum8b8mZBeMqkvpr/Rsvg4i31e/xesaScRED3vgIf5dTGAUOtlLk35jCTjnAlEXKG63cZeLANvqKTXpQqlQwpO15B1SeiZ8h+yGSLzoooRSNa0/F1kCoXaZEVUFMJpqriyyw4PLq2jzn2RQMOHu/O6g0OGtOsBMaDCYt6L37S5gJqSKrH5Gn6A3pK+E3YRhd3oclt9aalMek0DJvJj4fsB0grq+3pg7ZaeUawUE9wKPP+PchmCfaLrRfGSmc= 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-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:19.766248Z",
                            "start": "2026-04-16T17:21:19.294316Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000bd",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:19.972922Z",
                            "start": "2026-04-16T17:21:19.772884Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000be",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "87f7580a1353dbda567f0213df85e69e594675ac",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "86f11c139d9342c59c6219f08e70739e_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "87f7580a1353dbda567f0213df85e69e594675ac",
                                    "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-1776360080.020171-190-169235602314467/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "ffab0f261f4f6be4967c39df7f81f78d",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776360080.020171-190-169235602314467/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:20.450044Z",
                            "start": "2026-04-16T17:21:19.978454Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000bf",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "524460aeb4911e562b009792cb520a3658a8594e",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "86f11c139d9342c59c6219f08e70739e_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "524460aeb4911e562b009792cb520a3658a8594e",
                                    "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-1776360080.4986255-200-251057706356248/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "fb64c2cce5ed6c0226327aa85d6fec6d",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776360080.4986255-200-251057706356248/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:20.918393Z",
                            "start": "2026-04-16T17:21:20.455847Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000c0",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:20.950275Z",
                            "start": "2026-04-16T17:21:20.923446Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000009e",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/etc/zuul/id_rsa"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-0000000000a3",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:21.405758Z",
                            "start": "2026-04-16T17:21:20.960988Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000a5",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa"
                            ],
                            "delta": "0:00:00.015420",
                            "end": "2026-04-16 17:21:21.706543",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_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-afdd-b19d-0000000000ab-0-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:21:21.691123",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/86f11c139d9342c59c6219f08e70739e_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0011-afdd-b19d-0000000000ab-0-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:21.760933Z",
                            "start": "2026-04-16T17:21:21.462763Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000ab",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:22.035288Z",
                            "start": "2026-04-16T17:21:21.766658Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000ac",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:22.066771Z",
                            "start": "2026-04-16T17:21:22.040128Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-0000000000ad",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-afdd-b19d-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:22.380145Z",
                            "start": "2026-04-16T17:21:22.083123Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000001d",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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-afdd-b19d-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:23.922751Z",
                            "start": "2026-04-16T17:21:22.386547Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-00000000001e",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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-afdd-b19d-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:24.443871Z",
                            "start": "2026-04-16T17:21:23.931667Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000022",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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-afdd-b19d-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:24.995798Z",
                            "start": "2026-04-16T17:21:24.454553Z"
                        },
                        "id": "0242ac17-0011-afdd-b19d-000000000024",
                        "name": "Ensure Zuul Output directories exist"
                    }
                }
            ]
        }
    ],
    "stats": {
        "instance": {
            "changed": 8,
            "failures": 0,
            "ignored": 0,
            "ok": 15,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "localhost": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 6,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "1",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-jobs/playbooks/molecule/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-16T17:21:28.498825Z",
                    "start": "2026-04-16T17:21:25.726360Z"
                },
                "id": "0242ac17-0011-40e3-ac3d-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "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-1776360085.778406-5-199863310720141/uv-x86_64-unknown-linux-gnuhs7eka7n.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-1776360085.778406-5-199863310720141/uv-x86_64-unknown-linux-gnuhs7eka7n.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-40e3-ac3d-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:27.950443Z",
                            "start": "2026-04-16T17:21:25.737983Z"
                        },
                        "id": "0242ac17-0011-40e3-ac3d-000000000007",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.011912",
                            "end": "2026-04-16 17:21:26.757532",
                            "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-40e3-ac3d-000000000008-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:21:26.745620",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0011-40e3-ac3d-000000000008-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-40e3-ac3d-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:21:28.498825Z",
                            "start": "2026-04-16T17:21:27.976860Z"
                        },
                        "id": "0242ac17-0011-40e3-ac3d-000000000008",
                        "name": "Print version"
                    }
                }
            ]
        }
    ],
    "stats": {
        "instance": {
            "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/atmosphere/test-playbooks/molecule/pre.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-16T17:22:21.669645Z",
                    "start": "2026-04-16T17:21:29.306991Z"
                },
                "id": "0242ac17-0011-5b2e-7521-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1776360138,
                            "cache_updated": true,
                            "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": true,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            },
                            "stderr": "debconf: delaying package configuration, since apt-utils is not installed\n",
                            "stderr_lines": [
                                "debconf: delaying package configuration, since apt-utils is not installed"
                            ],
                            "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 357 kB of archives.\nAfter this operation, 1087 kB of additional disk space will be used.\nGet:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy/main amd64 libonig5 amd64 6.9.7.1-2build1 [172 kB]\nGet:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libjq1 amd64 1.6-2.1ubuntu3.1 [133 kB]\nGet:3 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates/main amd64 jq amd64 1.6-2.1ubuntu3.1 [52.5 kB]\nFetched 357 kB in 0s (2417 kB/s)\nSelecting previously unselected package libonig5:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 30923 files and directories currently installed.)\r\nPreparing to unpack .../libonig5_6.9.7.1-2build1_amd64.deb ...\r\nUnpacking libonig5:amd64 (6.9.7.1-2build1) ...\r\nSelecting previously unselected package libjq1:amd64.\r\nPreparing to unpack .../libjq1_1.6-2.1ubuntu3.1_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.6-2.1ubuntu3.1) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.6-2.1ubuntu3.1_amd64.deb ...\r\nUnpacking jq (1.6-2.1ubuntu3.1) ...\r\nSetting up libonig5:amd64 (6.9.7.1-2build1) ...\r\nSetting up libjq1:amd64 (1.6-2.1ubuntu3.1) ...\r\nSetting up jq (1.6-2.1ubuntu3.1) ...\r\nProcessing triggers for libc-bin (2.35-0ubuntu3.13) ...\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 357 kB of archives.",
                                "After this operation, 1087 kB of additional disk space will be used.",
                                "Get:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy/main amd64 libonig5 amd64 6.9.7.1-2build1 [172 kB]",
                                "Get:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libjq1 amd64 1.6-2.1ubuntu3.1 [133 kB]",
                                "Get:3 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates/main amd64 jq amd64 1.6-2.1ubuntu3.1 [52.5 kB]",
                                "Fetched 357 kB in 0s (2417 kB/s)",
                                "Selecting previously unselected package libonig5:amd64.",
                                "(Reading database ... ",
                                "(Reading database ... 5%",
                                "(Reading database ... 10%",
                                "(Reading database ... 15%",
                                "(Reading database ... 20%",
                                "(Reading database ... 25%",
                                "(Reading database ... 30%",
                                "(Reading database ... 35%",
                                "(Reading database ... 40%",
                                "(Reading database ... 45%",
                                "(Reading database ... 50%",
                                "(Reading database ... 55%",
                                "(Reading database ... 60%",
                                "(Reading database ... 65%",
                                "(Reading database ... 70%",
                                "(Reading database ... 75%",
                                "(Reading database ... 80%",
                                "(Reading database ... 85%",
                                "(Reading database ... 90%",
                                "(Reading database ... 95%",
                                "(Reading database ... 100%",
                                "(Reading database ... 30923 files and directories currently installed.)",
                                "Preparing to unpack .../libonig5_6.9.7.1-2build1_amd64.deb ...",
                                "Unpacking libonig5:amd64 (6.9.7.1-2build1) ...",
                                "Selecting previously unselected package libjq1:amd64.",
                                "Preparing to unpack .../libjq1_1.6-2.1ubuntu3.1_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.6-2.1ubuntu3.1) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.6-2.1ubuntu3.1_amd64.deb ...",
                                "Unpacking jq (1.6-2.1ubuntu3.1) ...",
                                "Setting up libonig5:amd64 (6.9.7.1-2build1) ...",
                                "Setting up libjq1:amd64 (1.6-2.1ubuntu3.1) ...",
                                "Setting up jq (1.6-2.1ubuntu3.1) ...",
                                "Processing triggers for libc-bin (2.35-0ubuntu3.13) ..."
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:22:21.669645Z",
                            "start": "2026-04-16T17:21:29.318561Z"
                        },
                        "id": "0242ac17-0011-5b2e-7521-000000000004",
                        "name": "Install \"jq\" for log collection"
                    }
                }
            ]
        }
    ],
    "stats": {
        "instance": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "run",
    "playbook": "github.com/vexxhost/zuul-jobs/playbooks/molecule/run.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-16T17:30:51.780093Z",
                    "start": "2026-04-16T17:22:22.430052Z"
                },
                "id": "0242ac17-0011-7fbe-4b9e-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "checksum": "62c95b8d842362158af89311d393d09aa1ad3f7c",
                            "dest": "src/github.com/vexxhost/atmosphere/inventory.yaml",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "62c95b8d842362158af89311d393d09aa1ad3f7c",
                                    "content": null,
                                    "dest": "src/github.com/vexxhost/atmosphere",
                                    "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-1776360142.4814088-5-9408671958353/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "b5cd5a81aaaebe3be2f7c8a0b3870b35",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 25205,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1776360142.4814088-5-9408671958353/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:22:23.289286Z",
                            "start": "2026-04-16T17:22:22.441813Z"
                        },
                        "id": "0242ac17-0011-7fbe-4b9e-000000000004",
                        "name": "Copy inventory file for Zuul"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.replace",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "after": null,
                                    "attributes": null,
                                    "backup": false,
                                    "before": null,
                                    "encoding": "utf-8",
                                    "group": null,
                                    "mode": null,
                                    "owner": null,
                                    "path": "src/github.com/vexxhost/atmosphere/inventory.yaml",
                                    "regexp": "(^\\s*ansible_host:\\s*).*$",
                                    "replace": "\\1\"{{ nodepool.private_ipv4 }}\"",
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "msg": "1 replacements made",
                            "rc": 0
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:22:23.592744Z",
                            "start": "2026-04-16T17:22:23.294117Z"
                        },
                        "id": "0242ac17-0011-7fbe-4b9e-000000000005",
                        "name": "Switch \"ansible_host\" to private IP"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "molecule",
                                "test",
                                "--destroy",
                                "never",
                                "-s",
                                "aio"
                            ],
                            "delta": "0:08:27.537088",
                            "end": "2026-04-16 17:30:51.458461",
                            "failed": true,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run molecule test --destroy never -s aio",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/atmosphere",
                                    "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-7fbe-4b9e-000000000006-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 2,
                            "start": "2026-04-16 17:22:23.921373",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.10.12 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\n   Building atmosphere @ file:///home/zuul/src/github.com/vexxhost/atmosphere\nDownloading setuptools (1.1MiB)\nDownloading ansible-core (2.1MiB)\nDownloading netaddr (2.2MiB)\nDownloading pydantic-core (2.0MiB)\nDownloading pygments (1.2MiB)\nDownloading openstacksdk (1.7MiB)\nDownloading rjsonnet (1.2MiB)\nDownloading kubernetes (1.9MiB)\nDownloading cryptography (4.2MiB)\n   Building pyperclip==1.9.0\n Downloading rjsonnet\n Downloading pydantic-core\n Downloading netaddr\n Downloading pygments\n Downloading cryptography\n Downloading setuptools\n Downloading kubernetes\n Downloading ansible-core\n Downloading openstacksdk\n      Built pyperclip==1.9.0\n      Built atmosphere @ file:///home/zuul/src/github.com/vexxhost/atmosphere\nInstalled 83 packages in 41ms\nWARNING  Molecule scenarios should migrate to 'extensions/molecule'\nINFO     [aio > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy\nINFO     [aio > prerun] Performing prerun with role_name_check=0...\nINFO     [aio > dependency] Executing\nWARNING  [aio > dependency] Missing roles requirements file: requirements.yml\nWARNING  [aio > dependency] Missing collections requirements file: collections.yml\nWARNING  [aio > dependency] Executed: 2 missing (Remove from test_sequence to suppress)\nINFO     [aio > cleanup] Executing\nWARNING  [aio > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [aio > destroy] Executing\nWARNING  [aio > destroy] Skipping, '--destroy=never' requested.\nINFO     [aio > destroy] Executed: Successful\nINFO     [aio > syntax] Executing\n\nplaybook: /home/zuul/src/github.com/vexxhost/atmosphere/molecule/aio/converge.yml\nINFO     [aio > syntax] Executed: Successful\nINFO     [aio > create] Executing\nWARNING  [aio > create] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [aio > prepare] Executing\n\nPLAY [Prepare] *****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:23:09 +0000 (0:00:00.024)       0:00:00.024 ********\n[WARNING]: Platform linux on host instance is using the discovered Python\ninterpreter at /usr/bin/python3.10, but future installation of another Python\ninterpreter could change the meaning of that path. See\nhttps://docs.ansible.com/ansible-\ncore/2.17/reference_appendices/interpreter_discovery.html for more information.\nok: [instance]\n\nTASK [Configure short hostname] ************************************************\nThursday 16 April 2026  17:23:10 +0000 (0:00:01.173)       0:00:01.197 ********\nchanged: [instance]\n\nTASK [Ensure hostname inside hosts file] ***************************************\nThursday 16 April 2026  17:23:11 +0000 (0:00:00.725)       0:00:01.923 ********\n[WARNING]: Module remote_tmp /root/.ansible/tmp did not exist and was created\nwith a mode of 0700, this may cause issues when running as another user. To\navoid this, create the remote_tmp dir with the correct permissions manually\nchanged: [instance]\n\nTASK [Install \"dirmngr\" for GPG keyserver operations] **************************\nThursday 16 April 2026  17:23:11 +0000 (0:00:00.292)       0:00:02.215 ********\nok: [instance]\n\nTASK [Purge \"snapd\" package] ***************************************************\nThursday 16 April 2026  17:23:13 +0000 (0:00:01.231)       0:00:03.447 ********\nok: [instance]\n\nPLAY [Generate workspace for Atmosphere] ***************************************\n\nTASK [Create folders for workspace] ********************************************\nThursday 16 April 2026  17:23:13 +0000 (0:00:00.685)       0:00:04.133 ********\nchanged: [localhost] => (item=group_vars)\nchanged: [localhost] => (item=group_vars/all)\nchanged: [localhost] => (item=group_vars/controllers)\nchanged: [localhost] => (item=group_vars/cephs)\nchanged: [localhost] => (item=group_vars/computes)\nchanged: [localhost] => (item=host_vars)\n\nPLAY [Generate Ceph control plane configuration for workspace] *****************\n\nTASK [Ensure the Ceph control plane configuration file exists] *****************\nThursday 16 April 2026  17:23:14 +0000 (0:00:01.035)       0:00:05.169 ********\nchanged: [localhost]\n\nTASK [Load the current Ceph control plane configuration into a variable] *******\nThursday 16 April 2026  17:23:15 +0000 (0:00:00.175)       0:00:05.344 ********\nok: [localhost]\n\nTASK [Generate Ceph control plane values for missing variables] ****************\nThursday 16 April 2026  17:23:15 +0000 (0:00:00.029)       0:00:05.374 ********\nok: [localhost] => (item={'key': 'ceph_fsid', 'value': 'bea45350-be6b-57ea-ad58-c5458630d4f3'})\nok: [localhost] => (item={'key': 'ceph_mon_public_network', 'value': '10.96.240.0/24'})\n\nTASK [Write new Ceph control plane configuration file to disk] *****************\nThursday 16 April 2026  17:23:15 +0000 (0:00:00.049)       0:00:05.423 ********\nchanged: [localhost]\n\nPLAY [Generate Ceph OSD configuration for workspace] ***************************\n\nTASK [Ensure the Ceph OSDs configuration file exists] **************************\nThursday 16 April 2026  17:23:15 +0000 (0:00:00.577)       0:00:06.000 ********\nchanged: [localhost]\n\nTASK [Load the current Ceph OSDs configuration into a variable] ****************\nThursday 16 April 2026  17:23:15 +0000 (0:00:00.172)       0:00:06.173 ********\nok: [localhost]\n\nTASK [Generate Ceph OSDs values for missing variables] *************************\nThursday 16 April 2026  17:23:15 +0000 (0:00:00.026)       0:00:06.199 ********\nok: [localhost] => (item={'key': 'ceph_osd_devices', 'value': ['/dev/vdb', '/dev/vdc', '/dev/vdd']})\n\nTASK [Write new Ceph OSDs configuration file to disk] **************************\nThursday 16 April 2026  17:23:15 +0000 (0:00:00.034)       0:00:06.234 ********\nchanged: [localhost]\n\nPLAY [Generate Kubernetes configuration for workspace] *************************\n\nTASK [Ensure the Kubernetes configuration file exists] *************************\nThursday 16 April 2026  17:23:16 +0000 (0:00:00.364)       0:00:06.599 ********\nchanged: [localhost]\n\nTASK [Load the current Kubernetes configuration into a variable] ***************\nThursday 16 April 2026  17:23:16 +0000 (0:00:00.196)       0:00:06.795 ********\nok: [localhost]\n\nTASK [Generate Kubernetes values for missing variables] ************************\nThursday 16 April 2026  17:23:16 +0000 (0:00:00.026)       0:00:06.821 ********\nok: [localhost] => (item={'key': 'kubernetes_hostname', 'value': '10.96.240.10'})\nok: [localhost] => (item={'key': 'kubernetes_keepalived_vrid', 'value': 42})\nok: [localhost] => (item={'key': 'kubernetes_keepalived_vip', 'value': '10.96.240.10'})\n\nTASK [Write new Kubernetes configuration file to disk] *************************\nThursday 16 April 2026  17:23:16 +0000 (0:00:00.039)       0:00:06.861 ********\nchanged: [localhost]\n\nPLAY [Generate Keepalived configuration for workspace] *************************\n\nTASK [Ensure the Keeaplived configuration file exists] *************************\nThursday 16 April 2026  17:23:16 +0000 (0:00:00.371)       0:00:07.233 ********\nchanged: [localhost]\n\nTASK [Load the current Keepalived configuration into a variable] ***************\nThursday 16 April 2026  17:23:17 +0000 (0:00:00.171)       0:00:07.404 ********\nok: [localhost]\n\nTASK [Generate Keepalived values for missing variables] ************************\nThursday 16 April 2026  17:23:17 +0000 (0:00:00.025)       0:00:07.429 ********\nok: [localhost] => (item={'key': 'keepalived_interface', 'value': 'br-ex'})\nok: [localhost] => (item={'key': 'keepalived_vip', 'value': '10.96.250.10'})\n\nTASK [Write new Keepalived configuration file to disk] *************************\nThursday 16 April 2026  17:23:17 +0000 (0:00:00.035)       0:00:07.465 ********\nchanged: [localhost]\n\nPLAY [Generate endpoints for workspace] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:23:17 +0000 (0:00:00.368)       0:00:07.833 ********\nok: [localhost]\n\nTASK [Ensure the endpoints file exists] ****************************************\nThursday 16 April 2026  17:23:18 +0000 (0:00:00.698)       0:00:08.532 ********\nchanged: [localhost]\n\nTASK [Load the current endpoints into a variable] ******************************\nThursday 16 April 2026  17:23:18 +0000 (0:00:00.179)       0:00:08.712 ********\nok: [localhost]\n\nTASK [Generate endpoint skeleton for missing variables] ************************\nThursday 16 April 2026  17:23:18 +0000 (0:00:00.023)       0:00:08.736 ********\nok: [localhost] => (item=keycloak_host)\nok: [localhost] => (item=kube_prometheus_stack_grafana_host)\nok: [localhost] => (item=kube_prometheus_stack_alertmanager_host)\nok: [localhost] => (item=kube_prometheus_stack_prometheus_host)\nok: [localhost] => (item=openstack_helm_endpoints_region_name)\nok: [localhost] => (item=openstack_helm_endpoints_keystone_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_glance_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_cinder_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_placement_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_barbican_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_neutron_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_nova_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_nova_novnc_host)\nok: [localhost] => (item=openstack_helm_endpoints_ironic_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_designate_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_octavia_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_magnum_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_magnum_registry_host)\nok: [localhost] => (item=openstack_helm_endpoints_heat_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_heat_cfn_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_horizon_api_host)\nok: [localhost] => (item=openstack_helm_endpoints_rgw_host)\nok: [localhost] => (item=openstack_helm_endpoints_manila_api_host)\n\nTASK [Write new endpoints file to disk] ****************************************\nThursday 16 April 2026  17:23:19 +0000 (0:00:00.761)       0:00:09.497 ********\nchanged: [localhost]\n\nTASK [Ensure the endpoints file exists] ****************************************\nThursday 16 April 2026  17:23:19 +0000 (0:00:00.359)       0:00:09.856 ********\nchanged: [localhost]\n\nPLAY [Generate Neutron configuration for workspace] ****************************\n\nTASK [Ensure the Neutron configuration file exists] ****************************\nThursday 16 April 2026  17:23:19 +0000 (0:00:00.181)       0:00:10.037 ********\nchanged: [localhost]\n\nTASK [Load the current Neutron configuration into a variable] ******************\nThursday 16 April 2026  17:23:19 +0000 (0:00:00.180)       0:00:10.218 ********\nok: [localhost]\n\nTASK [Generate Neutron values for missing variables] ***************************\nThursday 16 April 2026  17:23:19 +0000 (0:00:00.029)       0:00:10.247 ********\nok: [localhost] => (item={'key': 'neutron_networks', 'value': [{'name': 'public', 'external': True, 'shared': True, 'mtu_size': 1500, 'port_security_enabled': True, 'provider_network_type': 'flat', 'provider_physical_network': 'external', 'subnets': [{'name': 'public-subnet', 'cidr': '10.96.250.0/24', 'gateway_ip': '10.96.250.10', 'allocation_pool_start': '10.96.250.200', 'allocation_pool_end': '10.96.250.220', 'enable_dhcp': True}]}]})\n\nTASK [Write new Neutron configuration file to disk] ****************************\nThursday 16 April 2026  17:23:20 +0000 (0:00:00.042)       0:00:10.289 ********\nchanged: [localhost]\n\nPLAY [Generate Nova configuration for workspace] *******************************\n\nTASK [Ensure the Nova configuration file exists] *******************************\nThursday 16 April 2026  17:23:20 +0000 (0:00:00.343)       0:00:10.633 ********\nchanged: [localhost]\n\nTASK [Load the current Nova configuration into a variable] *********************\nThursday 16 April 2026  17:23:20 +0000 (0:00:00.172)       0:00:10.805 ********\nok: [localhost]\n\nTASK [Generate Nova values for missing variables] ******************************\nThursday 16 April 2026  17:23:20 +0000 (0:00:00.032)       0:00:10.837 ********\nok: [localhost] => (item={'key': 'nova_flavors', 'value': [{'name': 'm1.tiny', 'ram': 512, 'disk': 1, 'vcpus': 1}, {'name': 'm1.small', 'ram': 2048, 'disk': 20, 'vcpus': 1}, {'name': 'm1.medium', 'ram': 4096, 'disk': 40, 'vcpus': 2}, {'name': 'm1.large', 'ram': 8192, 'disk': 80, 'vcpus': 4}, {'name': 'm1.xlarge', 'ram': 16384, 'disk': 160, 'vcpus': 8}]})\n\nTASK [Write new Nova configuration file to disk] *******************************\nThursday 16 April 2026  17:23:20 +0000 (0:00:00.045)       0:00:10.883 ********\nchanged: [localhost]\n\nPLAY [Generate secrets for workspace] ******************************************\n\nTASK [Ensure the secrets file exists] ******************************************\nThursday 16 April 2026  17:23:21 +0000 (0:00:00.374)       0:00:11.258 ********\nchanged: [localhost]\n\nTASK [Load the current secrets into a variable] ********************************\nThursday 16 April 2026  17:23:21 +0000 (0:00:00.166)       0:00:11.424 ********\nok: [localhost]\n\nTASK [Generate secrets for missing variables] **********************************\nThursday 16 April 2026  17:23:21 +0000 (0:00:00.030)       0:00:11.455 ********\nok: [localhost] => (item=heat_auth_encryption_key)\nok: [localhost] => (item=keepalived_password)\nok: [localhost] => (item=keycloak_admin_password)\nok: [localhost] => (item=keycloak_database_password)\nok: [localhost] => (item=keystone_keycloak_client_secret)\nok: [localhost] => (item=keystone_oidc_crypto_passphrase)\nok: [localhost] => (item=kube_prometheus_stack_grafana_admin_password)\nok: [localhost] => (item=octavia_heartbeat_key)\nok: [localhost] => (item=openstack_helm_endpoints_rabbitmq_admin_password)\nok: [localhost] => (item=openstack_helm_endpoints_memcached_secret_key)\nok: [localhost] => (item=openstack_helm_endpoints_keystone_admin_password)\nok: [localhost] => (item=openstack_helm_endpoints_keystone_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_keystone_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_glance_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_glance_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_glance_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_cinder_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_cinder_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_cinder_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_placement_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_placement_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_barbican_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_barbican_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_neutron_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_neutron_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_neutron_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_neutron_metadata_secret)\nok: [localhost] => (item=openstack_helm_endpoints_nova_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_nova_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_nova_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_ironic_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_ironic_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_ironic_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_designate_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_designate_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_designate_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_octavia_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_octavia_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_octavia_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_magnum_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_magnum_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_magnum_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_heat_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_heat_trustee_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_heat_stack_user_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_heat_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_heat_rabbitmq_password)\nok: [localhost] => (item=openstack_helm_endpoints_horizon_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_tempest_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_openstack_exporter_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_rgw_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_manila_keystone_password)\nok: [localhost] => (item=openstack_helm_endpoints_manila_mariadb_password)\nok: [localhost] => (item=openstack_helm_endpoints_staffeln_mariadb_password)\n\nTASK [Generate base64 encoded secrets] *****************************************\nThursday 16 April 2026  17:23:21 +0000 (0:00:00.410)       0:00:11.865 ********\nok: [localhost] => (item=barbican_kek)\n\nTASK [Generate temporary files for generating keys for missing variables] ******\nThursday 16 April 2026  17:23:21 +0000 (0:00:00.051)       0:00:11.916 ********\nchanged: [localhost] => (item=manila_ssh_key)\nchanged: [localhost] => (item=nova_ssh_key)\n\nTASK [Generate SSH keys for missing variables] *********************************\nThursday 16 April 2026  17:23:22 +0000 (0:00:00.392)       0:00:12.309 ********\nchanged: [localhost] => (item=manila_ssh_key)\nchanged: [localhost] => (item=nova_ssh_key)\n\nTASK [Set values for SSH keys] *************************************************\nThursday 16 April 2026  17:23:25 +0000 (0:00:03.291)       0:00:15.601 ********\nok: [localhost] => (item=manila_ssh_key)\nok: [localhost] => (item=nova_ssh_key)\n\nTASK [Delete the temporary files generated for SSH keys] ***********************\nThursday 16 April 2026  17:23:25 +0000 (0:00:00.053)       0:00:15.654 ********\nchanged: [localhost] => (item=manila_ssh_key)\nchanged: [localhost] => (item=nova_ssh_key)\n\nTASK [Write new secrets file to disk] ******************************************\nThursday 16 April 2026  17:23:25 +0000 (0:00:00.373)       0:00:16.028 ********\nchanged: [localhost]\n\nTASK [Encrypt secrets file with Vault password] ********************************\nThursday 16 April 2026  17:23:26 +0000 (0:00:00.366)       0:00:16.394 ********\nskipping: [localhost]\n\nPLAY [Setup networking] ********************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:23:26 +0000 (0:00:00.040)       0:00:16.435 ********\nok: [instance]\n\nTASK [Create bridge for management network] ************************************\nThursday 16 April 2026  17:23:26 +0000 (0:00:00.708)       0:00:17.144 ********\nok: [instance]\n\nTASK [Create fake interface for management bridge] *****************************\nThursday 16 April 2026  17:23:27 +0000 (0:00:00.351)       0:00:17.495 ********\nok: [instance]\n\nTASK [Assign dummy interface to management bridge] *****************************\nThursday 16 April 2026  17:23:27 +0000 (0:00:00.215)       0:00:17.711 ********\nok: [instance]\n\nTASK [Assign IP address for management bridge] *********************************\nThursday 16 April 2026  17:23:27 +0000 (0:00:00.216)       0:00:17.927 ********\nok: [instance]\n\nTASK [Bring up interfaces] *****************************************************\nThursday 16 April 2026  17:23:27 +0000 (0:00:00.206)       0:00:18.134 ********\nok: [instance] => (item=br-mgmt)\nok: [instance] => (item=dummy0)\n\nPLAY [Create devices for Ceph] *************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:23:28 +0000 (0:00:00.405)       0:00:18.539 ********\nok: [instance]\n\nTASK [Install depedencies] *****************************************************\nThursday 16 April 2026  17:23:29 +0000 (0:00:00.754)       0:00:19.293 ********\nchanged: [instance]\n\nTASK [Start up service] ********************************************************\nThursday 16 April 2026  17:24:09 +0000 (0:00:40.927)       0:01:00.220 ********\nok: [instance]\n\nTASK [Generate lvm.conf] *******************************************************\nThursday 16 April 2026  17:24:10 +0000 (0:00:00.578)       0:01:00.799 ********\nok: [instance]\n\nTASK [Write /etc/lvm/lvm.conf] *************************************************\nThursday 16 April 2026  17:24:10 +0000 (0:00:00.217)       0:01:01.017 ********\nchanged: [instance]\n\nTASK [Get list of all loopback devices] ****************************************\nThursday 16 April 2026  17:24:11 +0000 (0:00:00.469)       0:01:01.486 ********\nok: [instance]\n\nTASK [Fail if there is any existing loopback devices] **************************\nThursday 16 April 2026  17:24:11 +0000 (0:00:00.196)       0:01:01.683 ********\nskipping: [instance]\n\nTASK [Create devices for Ceph] *************************************************\nThursday 16 April 2026  17:24:11 +0000 (0:00:00.025)       0:01:01.709 ********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Set permissions on loopback devices] *************************************\nThursday 16 April 2026  17:24:12 +0000 (0:00:00.594)       0:01:02.304 ********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Start loop devices] ******************************************************\nThursday 16 April 2026  17:24:12 +0000 (0:00:00.555)       0:01:02.859 ********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Create a volume group for each loop device] ******************************\nThursday 16 April 2026  17:24:13 +0000 (0:00:00.778)       0:01:03.638 ********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Create a logical volume for each loop device] ****************************\nThursday 16 April 2026  17:24:16 +0000 (0:00:03.094)       0:01:06.733 ********\nchanged: [instance] => (item=ceph-instance-osd0)\nchanged: [instance] => (item=ceph-instance-osd1)\nchanged: [instance] => (item=ceph-instance-osd2)\n\nPLAY [controllers] *************************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:24:18 +0000 (0:00:01.971)       0:01:08.704 ********\nok: [instance]\n\nTASK [Set masquerade rule] *****************************************************\nThursday 16 April 2026  17:24:19 +0000 (0:00:00.922)       0:01:09.627 ********\nchanged: [instance]\n\nPLAY RECAP *********************************************************************\ninstance                   : ok=24   changed=10   unreachable=0    failed=0    skipped=1    rescued=0    ignored=0\nlocalhost                  : ok=40   changed=21   unreachable=0    failed=0    skipped=1    rescued=0    ignored=0\n\nThursday 16 April 2026  17:24:19 +0000 (0:00:00.469)       0:01:10.096 ********\n===============================================================================\nInstall depedencies ---------------------------------------------------- 40.93s\nGenerate SSH keys for missing variables --------------------------------- 3.29s\nCreate a volume group for each loop device ------------------------------ 3.09s\nCreate a logical volume for each loop device ---------------------------- 1.97s\nInstall \"dirmngr\" for GPG keyserver operations -------------------------- 1.23s\nGathering Facts --------------------------------------------------------- 1.17s\nCreate folders for workspace -------------------------------------------- 1.04s\nGathering Facts --------------------------------------------------------- 0.92s\nStart loop devices ------------------------------------------------------ 0.78s\nGenerate endpoint skeleton for missing variables ------------------------ 0.76s\nGathering Facts --------------------------------------------------------- 0.75s\nConfigure short hostname ------------------------------------------------ 0.73s\nGathering Facts --------------------------------------------------------- 0.71s\nGathering Facts --------------------------------------------------------- 0.70s\nPurge \"snapd\" package --------------------------------------------------- 0.69s\nCreate devices for Ceph ------------------------------------------------- 0.59s\nStart up service -------------------------------------------------------- 0.58s\nWrite new Ceph control plane configuration file to disk ----------------- 0.58s\nSet permissions on loopback devices ------------------------------------- 0.56s\nSet masquerade rule ----------------------------------------------------- 0.47s\nINFO     [aio > prepare] Executed: Successful\nINFO     [aio > converge] Executing\n\nPLAY [all] *********************************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:24:22 +0000 (0:00:00.018)       0:00:00.018 ********\n[WARNING]: Platform linux on host instance is using the discovered Python\ninterpreter at /usr/bin/python3.10, but future installation of another Python\ninterpreter could change the meaning of that path. See\nhttps://docs.ansible.com/ansible-\ncore/2.17/reference_appendices/interpreter_discovery.html for more information.\nok: [instance]\n\nTASK [Fail if atmosphere_ceph_enabled is set] **********************************\nThursday 16 April 2026  17:24:23 +0000 (0:00:01.207)       0:00:01.225 ********\nskipping: [instance]\n\nTASK [Set a fact with the \"atmosphere_images\" for other plays] *****************\nThursday 16 April 2026  17:24:23 +0000 (0:00:00.041)       0:00:01.267 ********\nok: [instance]\n\nPLAY [Deploy Ceph monitors & managers] *****************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:24:24 +0000 (0:00:00.184)       0:00:01.452 ********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:24:25 +0000 (0:00:00.914)       0:00:02.366 ********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:24:25 +0000 (0:00:00.290)       0:00:02.657 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nThursday 16 April 2026  17:24:25 +0000 (0:00:00.046)       0:00:02.704 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:24:25 +0000 (0:00:00.304)       0:00:03.008 ********\nok: [instance] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nThursday 16 April 2026  17:24:25 +0000 (0:00:00.087)       0:00:03.096 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:24:26 +0000 (0:00:00.810)       0:00:03.906 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:24:26 +0000 (0:00:00.062)       0:00:03.969 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:24:26 +0000 (0:00:00.053)       0:00:04.023 ********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:24:26 +0000 (0:00:00.215)       0:00:04.239 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:24:28 +0000 (0:00:01.391)       0:00:05.630 ********\nok: [instance] => {\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] *******************\nThursday 16 April 2026  17:24:28 +0000 (0:00:00.082)       0:00:05.713 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:24:29 +0000 (0:00:00.742)       0:00:06.456 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nThursday 16 April 2026  17:24:33 +0000 (0:00:04.066)       0:00:10.522 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nThursday 16 April 2026  17:24:33 +0000 (0:00:00.034)       0:00:10.556 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nThursday 16 April 2026  17:24:33 +0000 (0:00:00.042)       0:00:10.599 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nThursday 16 April 2026  17:24:33 +0000 (0:00:00.035)       0:00:10.635 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nThursday 16 April 2026  17:24:39 +0000 (0:00:06.251)       0:00:16.886 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nThursday 16 April 2026  17:24:40 +0000 (0:00:00.676)       0:00:17.562 ********\nchanged: [instance] => (item={'path': '/etc/containerd'})\nchanged: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nThursday 16 April 2026  17:24:41 +0000 (0:00:00.986)       0:00:18.548 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nThursday 16 April 2026  17:24:41 +0000 (0:00:00.586)       0:00:19.135 ********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************\nThursday 16 April 2026  17:24:41 +0000 (0:00:00.009)       0:00:19.145 ********\nok: [instance]\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nThursday 16 April 2026  17:24:42 +0000 (0:00:00.956)       0:00:20.102 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nThursday 16 April 2026  17:24:43 +0000 (0:00:00.464)       0:00:20.566 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:24:43 +0000 (0:00:00.564)       0:00:21.130 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:24:44 +0000 (0:00:00.214)       0:00:21.344 ********\nok: [instance] => {\n    \"msg\": \"https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nThursday 16 April 2026  17:24:44 +0000 (0:00:00.056)       0:00:21.401 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:24:45 +0000 (0:00:00.935)       0:00:22.337 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Install AppArmor packages] ******************\nThursday 16 April 2026  17:24:49 +0000 (0:00:04.476)       0:00:26.813 ********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************\nThursday 16 April 2026  17:24:50 +0000 (0:00:01.144)       0:00:27.958 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Create systemd service file for docker] *****\nThursday 16 April 2026  17:24:51 +0000 (0:00:00.420)       0:00:28.379 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Create folders for configuration] ***********\nThursday 16 April 2026  17:24:51 +0000 (0:00:00.505)       0:00:28.884 ********\nchanged: [instance] => (item={'path': '/etc/docker'})\nchanged: [instance] => (item={'path': '/var/lib/docker', 'mode': '0o710'})\nchanged: [instance] => (item={'path': '/run/docker', 'mode': '0o711'})\n\nTASK [vexxhost.containers.docker : Create systemd socket file for docker] ******\nThursday 16 April 2026  17:24:52 +0000 (0:00:00.557)       0:00:29.442 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Create docker daemon config file] ***********\nThursday 16 April 2026  17:24:52 +0000 (0:00:00.467)       0:00:29.909 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Force any restarts if necessary] ************\nThursday 16 April 2026  17:24:53 +0000 (0:00:00.480)       0:00:30.390 ********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************\nThursday 16 April 2026  17:24:53 +0000 (0:00:00.009)       0:00:30.399 ********\nok: [instance]\n\nRUNNING HANDLER [vexxhost.containers.docker : Restart docker] ******************\nThursday 16 April 2026  17:24:53 +0000 (0:00:00.689)       0:00:31.089 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Enable and start service] *******************\nThursday 16 April 2026  17:24:54 +0000 (0:00:00.828)       0:00:31.917 ********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******\nThursday 16 April 2026  17:24:56 +0000 (0:00:01.576)       0:00:33.494 ********\nok: [instance] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/cephadm/vars/ubuntu-22.04.yml)\n\nTASK [vexxhost.ceph.cephadm : Install packages] ********************************\nThursday 16 April 2026  17:24:56 +0000 (0:00:00.065)       0:00:33.560 ********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure services are started] *********************\nThursday 16 April 2026  17:25:05 +0000 (0:00:09.163)       0:00:42.723 ********\nok: [instance] => (item=chronyd)\nok: [instance] => (item=sshd)\n\nTASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************\nThursday 16 April 2026  17:25:06 +0000 (0:00:00.682)       0:00:43.406 ********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************\nThursday 16 April 2026  17:25:06 +0000 (0:00:00.320)       0:00:43.726 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************\nThursday 16 April 2026  17:25:06 +0000 (0:00:00.215)       0:00:43.942 ********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***\nThursday 16 April 2026  17:25:07 +0000 (0:00:00.546)       0:00:44.488 ********\nchanged: [instance]\n\nTASK [vexxhost.ceph.mon : Get `cephadm ls` status] *****************************\nThursday 16 April 2026  17:25:07 +0000 (0:00:00.424)       0:00:44.912 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Parse the `cephadm ls` output] ***********************\nThursday 16 April 2026  17:25:09 +0000 (0:00:01.734)       0:00:46.647 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Assimilate existing configs in `ceph.conf`] **********\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.056)       0:00:46.704 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Adopt monitor to cluster] ****************************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.039)       0:00:46.743 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Adopt manager to cluster] ****************************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.044)       0:00:46.787 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Enable \"cephadm\" mgr module] *************************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.044)       0:00:46.832 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Set orchestrator backend to \"cephadm\"] ***************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.042)       0:00:46.874 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Use `cephadm` user for cephadm] **********************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.044)       0:00:46.919 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Generate \"cephadm\" key] ******************************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.042)       0:00:46.961 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Set Ceph Monitor IP address] *************************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.042)       0:00:47.004 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Check if any node is bootstrapped] *******************\nThursday 16 April 2026  17:25:09 +0000 (0:00:00.133)       0:00:47.138 ********\nok: [instance] => (item=instance)\n\nTASK [vexxhost.ceph.mon : Select pre-existing bootstrap node if exists] ********\nThursday 16 April 2026  17:25:10 +0000 (0:00:00.233)       0:00:47.371 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Bootstrap cluster] ***********************************\nThursday 16 April 2026  17:25:10 +0000 (0:00:00.062)       0:00:47.434 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/mon/tasks/bootstrap-ceph.yml for instance\n\nTASK [vexxhost.ceph.mon : Generate temporary file for \"ceph.conf\"] *************\nThursday 16 April 2026  17:25:10 +0000 (0:00:00.106)       0:00:47.540 ********\nchanged: [instance]\n\nTASK [vexxhost.ceph.mon : Include extra configuration values] ******************\nThursday 16 April 2026  17:25:10 +0000 (0:00:00.380)       0:00:47.921 ********\nchanged: [instance] => (item={'option': 'mon allow pool size one', 'section': 'global', 'value': True})\nchanged: [instance] => (item={'option': 'osd crush chooseleaf type', 'section': 'global', 'value': 0})\nchanged: [instance] => (item={'option': 'auth allow insecure global id reclaim', 'section': 'mon', 'value': False})\n\nTASK [vexxhost.ceph.mon : Run Bootstrap coomand] *******************************\nThursday 16 April 2026  17:25:11 +0000 (0:00:00.793)       0:00:48.714 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Remove temporary file for \"ceph.conf\"] ***************\nThursday 16 April 2026  17:27:19 +0000 (0:02:07.842)       0:02:56.556 ********\nchanged: [instance]\n\nTASK [vexxhost.ceph.mon : Set bootstrap node] **********************************\nThursday 16 April 2026  17:27:19 +0000 (0:00:00.229)       0:02:56.785 ********\nok: [instance]\n\nTASK [Install Ceph host] *******************************************************\nThursday 16 April 2026  17:27:19 +0000 (0:00:00.050)       0:02:56.836 ********\nincluded: vexxhost.ceph.cephadm_host for instance\n\nTASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******\nThursday 16 April 2026  17:27:19 +0000 (0:00:00.079)       0:02:56.916 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***\nThursday 16 April 2026  17:27:21 +0000 (0:00:01.654)       0:02:58.571 ********\nok: [instance] => (item=instance)\n\nTASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********\nThursday 16 April 2026  17:27:21 +0000 (0:00:00.071)       0:02:58.642 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************\nThursday 16 April 2026  17:27:21 +0000 (0:00:00.435)       0:02:59.078 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Configure \"mon\" label for monitors] ******************\nThursday 16 April 2026  17:27:23 +0000 (0:00:01.985)       0:03:01.064 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Validate monitor exist] ******************************\nThursday 16 April 2026  17:27:25 +0000 (0:00:01.731)       0:03:02.796 ********\nok: [instance]\n\nTASK [Install Ceph host] *******************************************************\nThursday 16 April 2026  17:27:35 +0000 (0:00:10.294)       0:03:13.090 ********\nincluded: vexxhost.ceph.cephadm_host for instance\n\nTASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******\nThursday 16 April 2026  17:27:35 +0000 (0:00:00.081)       0:03:13.172 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***\nThursday 16 April 2026  17:27:35 +0000 (0:00:00.058)       0:03:13.231 ********\nskipping: [instance] => (item=instance)\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********\nThursday 16 April 2026  17:27:35 +0000 (0:00:00.057)       0:03:13.288 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************\nThursday 16 April 2026  17:27:36 +0000 (0:00:00.260)       0:03:13.549 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mgr : Configure \"mgr\" label for managers] ******************\nThursday 16 April 2026  17:27:38 +0000 (0:00:02.074)       0:03:15.623 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mgr : Validate manager exist] ******************************\nThursday 16 April 2026  17:27:40 +0000 (0:00:01.767)       0:03:17.391 ********\nok: [instance]\n\nTASK [vexxhost.ceph.mgr : Enable the Ceph Manager prometheus module] ***********\nThursday 16 April 2026  17:27:41 +0000 (0:00:01.579)       0:03:18.970 ********\nok: [instance]\n\nPLAY [Deploy Ceph OSDs] ********************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:27:44 +0000 (0:00:02.526)       0:03:21.497 ********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:27:45 +0000 (0:00:00.912)       0:03:22.409 ********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:27:45 +0000 (0:00:00.207)       0:03:22.617 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nThursday 16 April 2026  17:27:45 +0000 (0:00:00.044)       0:03:22.662 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:27:45 +0000 (0:00:00.210)       0:03:22.873 ********\nok: [instance] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nThursday 16 April 2026  17:27:45 +0000 (0:00:00.056)       0:03:22.929 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:27:45 +0000 (0:00:00.301)       0:03:23.230 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:27:45 +0000 (0:00:00.050)       0:03:23.281 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:27:46 +0000 (0:00:00.044)       0:03:23.326 ********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:27:46 +0000 (0:00:00.201)       0:03:23.527 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:27:47 +0000 (0:00:01.030)       0:03:24.558 ********\nok: [instance] => {\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] *******************\nThursday 16 April 2026  17:27:47 +0000 (0:00:00.068)       0:03:24.627 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:27:47 +0000 (0:00:00.345)       0:03:24.972 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nThursday 16 April 2026  17:27:50 +0000 (0:00:02.991)       0:03:27.963 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nThursday 16 April 2026  17:27:50 +0000 (0:00:00.035)       0:03:27.998 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nThursday 16 April 2026  17:27:50 +0000 (0:00:00.035)       0:03:28.034 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nThursday 16 April 2026  17:27:50 +0000 (0:00:00.036)       0:03:28.070 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nThursday 16 April 2026  17:27:51 +0000 (0:00:01.054)       0:03:29.124 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nThursday 16 April 2026  17:27:52 +0000 (0:00:00.434)       0:03:29.558 ********\nok: [instance] => (item={'path': '/etc/containerd'})\nok: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nThursday 16 April 2026  17:27:53 +0000 (0:00:00.893)       0:03:30.452 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nThursday 16 April 2026  17:27:53 +0000 (0:00:00.495)       0:03:30.947 ********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nThursday 16 April 2026  17:27:53 +0000 (0:00:00.006)       0:03:30.954 ********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:27:54 +0000 (0:00:00.348)       0:03:31.302 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:27:54 +0000 (0:00:00.202)       0:03:31.504 ********\nok: [instance] => {\n    \"msg\": \"https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nThursday 16 April 2026  17:27:54 +0000 (0:00:00.053)       0:03:31.558 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:27:54 +0000 (0:00:00.347)       0:03:31.906 ********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Install AppArmor packages] ******************\nThursday 16 April 2026  17:27:57 +0000 (0:00:03.059)       0:03:34.965 ********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************\nThursday 16 April 2026  17:27:58 +0000 (0:00:01.033)       0:03:35.998 ********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Create systemd service file for docker] *****\nThursday 16 April 2026  17:27:58 +0000 (0:00:00.194)       0:03:36.193 ********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Create folders for configuration] ***********\nThursday 16 April 2026  17:27:59 +0000 (0:00:00.425)       0:03:36.619 ********\nok: [instance] => (item={'path': '/etc/docker'})\nok: [instance] => (item={'path': '/var/lib/docker', 'mode': '0o710'})\nok: [instance] => (item={'path': '/run/docker', 'mode': '0o711'})\n\nTASK [vexxhost.containers.docker : Create systemd socket file for docker] ******\nThursday 16 April 2026  17:27:59 +0000 (0:00:00.548)       0:03:37.167 ********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Create docker daemon config file] ***********\nThursday 16 April 2026  17:28:00 +0000 (0:00:00.426)       0:03:37.594 ********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Force any restarts if necessary] ************\nThursday 16 April 2026  17:28:00 +0000 (0:00:00.424)       0:03:38.019 ********\n\nTASK [vexxhost.containers.docker : Enable and start service] *******************\nThursday 16 April 2026  17:28:00 +0000 (0:00:00.007)       0:03:38.026 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******\nThursday 16 April 2026  17:28:01 +0000 (0:00:00.359)       0:03:38.385 ********\nok: [instance] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/cephadm/vars/ubuntu-22.04.yml)\n\nTASK [vexxhost.ceph.cephadm : Install packages] ********************************\nThursday 16 April 2026  17:28:01 +0000 (0:00:00.055)       0:03:38.440 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure services are started] *********************\nThursday 16 April 2026  17:28:02 +0000 (0:00:01.040)       0:03:39.480 ********\nok: [instance] => (item=chronyd)\nok: [instance] => (item=sshd)\n\nTASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************\nThursday 16 April 2026  17:28:02 +0000 (0:00:00.653)       0:03:40.134 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************\nThursday 16 April 2026  17:28:03 +0000 (0:00:00.623)       0:03:40.758 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************\nThursday 16 April 2026  17:28:03 +0000 (0:00:00.217)       0:03:40.975 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***\nThursday 16 April 2026  17:28:03 +0000 (0:00:00.258)       0:03:41.234 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get monitor status] **********************************\nThursday 16 April 2026  17:28:04 +0000 (0:00:00.201)       0:03:41.436 ********\nok: [instance] => (item=instance)\n\nTASK [vexxhost.ceph.osd : Select admin host] ***********************************\nThursday 16 April 2026  17:28:04 +0000 (0:00:00.229)       0:03:41.665 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get `cephadm ls` status] *****************************\nThursday 16 April 2026  17:28:04 +0000 (0:00:00.052)       0:03:41.717 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Parse the `cephadm ls` output] ***********************\nThursday 16 April 2026  17:28:09 +0000 (0:00:05.339)       0:03:47.056 ********\nok: [instance]\n\nTASK [Install Ceph host] *******************************************************\nThursday 16 April 2026  17:28:09 +0000 (0:00:00.053)       0:03:47.110 ********\nincluded: vexxhost.ceph.cephadm_host for instance\n\nTASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******\nThursday 16 April 2026  17:28:09 +0000 (0:00:00.072)       0:03:47.182 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***\nThursday 16 April 2026  17:28:09 +0000 (0:00:00.059)       0:03:47.241 ********\nskipping: [instance] => (item=instance)\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********\nThursday 16 April 2026  17:28:10 +0000 (0:00:00.069)       0:03:47.311 ********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************\nThursday 16 April 2026  17:28:10 +0000 (0:00:00.261)       0:03:47.572 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Adopt OSDs to cluster] *******************************\nThursday 16 April 2026  17:28:12 +0000 (0:00:02.056)       0:03:49.628 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.osd : Wait until OSD added to cephadm] *********************\nThursday 16 April 2026  17:28:12 +0000 (0:00:00.034)       0:03:49.663 ********\nskipping: [instance]\n\nTASK [vexxhost.ceph.osd : Ensure all OSDs are non-legacy] **********************\nThursday 16 April 2026  17:28:12 +0000 (0:00:00.030)       0:03:49.693 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get `ceph-volume lvm list` status] *******************\nThursday 16 April 2026  17:28:17 +0000 (0:00:05.406)       0:03:55.099 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Install OSDs] ****************************************\nThursday 16 April 2026  17:28:28 +0000 (0:00:10.379)       0:04:05.479 ********\nok: [instance] => (item=/dev/ceph-instance-osd0/data)\nok: [instance] => (item=/dev/ceph-instance-osd1/data)\nok: [instance] => (item=/dev/ceph-instance-osd2/data)\n\nTASK [vexxhost.ceph.osd : Get mon dump] ****************************************\nThursday 16 April 2026  17:29:56 +0000 (0:01:28.649)       0:05:34.128 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Mark require osd release] ****************************\nThursday 16 April 2026  17:29:58 +0000 (0:00:01.726)       0:05:35.855 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Wait for all OSD to be running] **********************\nThursday 16 April 2026  17:30:00 +0000 (0:00:01.811)       0:05:37.667 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/osd/tasks/check-osds.yml for instance\n\nTASK [vexxhost.ceph.osd : Set the retry count] *********************************\nThursday 16 April 2026  17:30:00 +0000 (0:00:00.076)       0:05:37.744 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get `ceph orch ps`] **********************************\nThursday 16 April 2026  17:30:00 +0000 (0:00:00.050)       0:05:37.794 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : OSD daemon list] *************************************\nThursday 16 April 2026  17:30:02 +0000 (0:00:01.832)       0:05:39.627 ********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Fail if any OSD not running] *************************\nThursday 16 April 2026  17:30:02 +0000 (0:00:00.043)       0:05:39.671 ********\nskipping: [instance] => (item=1)\nskipping: [instance] => (item=1)\nskipping: [instance] => (item=1)\nskipping: [instance]\n\nTASK [vexxhost.ceph.osd : Fail if any duplicate OSD ID] ************************\nThursday 16 April 2026  17:30:02 +0000 (0:00:00.050)       0:05:39.721 ********\nskipping: [instance]\n\nPLAY [all] *********************************************************************\n\nTASK [Ensure RBD kernel module is loaded] **************************************\nThursday 16 April 2026  17:30:02 +0000 (0:00:00.059)       0:05:39.780 ********\nchanged: [instance]\n\nPLAY [all] *********************************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:30:02 +0000 (0:00:00.452)       0:05:40.233 ********\nok: [instance]\n\nTASK [vexxhost.atmosphere.sysctl : Configure sysctl values] ********************\nThursday 16 April 2026  17:30:04 +0000 (0:00:01.233)       0:05:41.466 ********\nchanged: [instance] => (item={'name': 'fs.aio-max-nr', 'value': 1048576})\nchanged: [instance] => (item={'name': 'net.ipv4.tcp_timestamps', 'value': 0})\nchanged: [instance] => (item={'name': 'net.ipv4.tcp_sack', 'value': 1})\nchanged: [instance] => (item={'name': 'net.core.netdev_budget', 'value': 1000})\nchanged: [instance] => (item={'name': 'net.core.netdev_max_backlog', 'value': 250000})\nchanged: [instance] => (item={'name': 'net.core.rmem_max', 'value': 4194304})\nchanged: [instance] => (item={'name': 'net.core.wmem_max', 'value': 4194304})\nchanged: [instance] => (item={'name': 'net.core.rmem_default', 'value': 4194304})\nchanged: [instance] => (item={'name': 'net.core.wmem_default', 'value': 4194304})\nchanged: [instance] => (item={'name': 'net.core.optmem_max', 'value': 4194304})\nchanged: [instance] => (item={'name': 'net.ipv4.tcp_rmem', 'value': '4096 87380 4194304'})\nchanged: [instance] => (item={'name': 'net.ipv4.tcp_wmem', 'value': '4096 65536 4194304'})\nchanged: [instance] => (item={'name': 'net.ipv4.tcp_low_latency', 'value': 1})\nchanged: [instance] => (item={'name': 'net.ipv4.tcp_adv_win_scale', 'value': 1})\nchanged: [instance] => (item={'name': 'net.ipv4.neigh.default.gc_thresh1', 'value': 128})\nchanged: [instance] => (item={'name': 'net.ipv4.neigh.default.gc_thresh2', 'value': 28872})\nchanged: [instance] => (item={'name': 'net.ipv4.neigh.default.gc_thresh3', 'value': 32768})\nchanged: [instance] => (item={'name': 'net.ipv6.neigh.default.gc_thresh1', 'value': 128})\nchanged: [instance] => (item={'name': 'net.ipv6.neigh.default.gc_thresh2', 'value': 28872})\nchanged: [instance] => (item={'name': 'net.ipv6.neigh.default.gc_thresh3', 'value': 32768})\n\nTASK [vexxhost.atmosphere.ethtool : Create folder for persistent configuration] ***\nThursday 16 April 2026  17:30:08 +0000 (0:00:04.811)       0:05:46.277 ********\nchanged: [instance]\n\nTASK [vexxhost.atmosphere.ethtool : Install persistent \"ethtool\" tuning] *******\nThursday 16 April 2026  17:30:09 +0000 (0:00:00.224)       0:05:46.501 ********\nchanged: [instance]\n\nTASK [vexxhost.atmosphere.ethtool : Run \"ethtool\" tuning] **********************\nThursday 16 April 2026  17:30:09 +0000 (0:00:00.485)       0:05:46.987 ********\nok: [instance]\n\nTASK [Set a fact with the \"atmosphere_images\" for other plays] *****************\nThursday 16 April 2026  17:30:09 +0000 (0:00:00.247)       0:05:47.234 ********\nok: [instance]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:30:09 +0000 (0:00:00.048)       0:05:47.282 ********\nok: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nThursday 16 April 2026  17:30:10 +0000 (0:00:00.923)       0:05:48.206 ********\nchanged: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nThursday 16 April 2026  17:30:11 +0000 (0:00:00.214)       0:05:48.420 ********\nok: [instance] => (item=/etc/keepalived/keepalived.conf)\nok: [instance] => (item=/etc/keepalived/check_apiserver.sh)\nok: [instance] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [instance] => (item=/etc/haproxy/haproxy.cfg)\nok: [instance] => (item=/etc/kubernetes/manifests/haproxy.yaml)\n\nTASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****\nThursday 16 April 2026  17:30:12 +0000 (0:00:00.886)       0:05:49.306 ********\nfailed: [instance] (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: [instance] (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: [instance] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\n...ignoring\n\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nThursday 16 April 2026  17:30:12 +0000 (0:00:00.508)       0:05:49.815 ********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nThursday 16 April 2026  17:30:12 +0000 (0:00:00.186)       0:05:50.001 ********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nThursday 16 April 2026  17:30:12 +0000 (0:00:00.195)       0:05:50.197 ********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nThursday 16 April 2026  17:30:12 +0000 (0:00:00.030)       0:05:50.227 ********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nThursday 16 April 2026  17:30:12 +0000 (0:00:00.041)       0:05:50.269 ********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nThursday 16 April 2026  17:30:13 +0000 (0:00:00.526)       0:05:50.795 ********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nThursday 16 April 2026  17:30:13 +0000 (0:00:00.191)       0:05:50.987 ********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nThursday 16 April 2026  17:30:13 +0000 (0:00:00.058)       0:05:51.045 ********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:30:14 +0000 (0:00:00.932)       0:05:51.977 ********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:30:14 +0000 (0:00:00.198)       0:05:52.176 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nThursday 16 April 2026  17:30:14 +0000 (0:00:00.041)       0:05:52.217 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:30:15 +0000 (0:00:00.204)       0:05:52.421 ********\nok: [instance] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nThursday 16 April 2026  17:30:15 +0000 (0:00:00.055)       0:05:52.476 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:30:15 +0000 (0:00:00.303)       0:05:52.780 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:30:15 +0000 (0:00:00.046)       0:05:52.827 ********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nThursday 16 April 2026  17:30:15 +0000 (0:00:00.209)       0:05:53.036 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:30:16 +0000 (0:00:01.035)       0:05:54.072 ********\nok: [instance] => {\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] *******************\nThursday 16 April 2026  17:30:16 +0000 (0:00:00.059)       0:05:54.131 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:30:17 +0000 (0:00:00.330)       0:05:54.461 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nThursday 16 April 2026  17:30:19 +0000 (0:00:01.969)       0:05:56.431 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nThursday 16 April 2026  17:30:19 +0000 (0:00:00.032)       0:05:56.463 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nThursday 16 April 2026  17:30:19 +0000 (0:00:00.035)       0:05:56.498 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nThursday 16 April 2026  17:30:19 +0000 (0:00:00.037)       0:05:56.536 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nThursday 16 April 2026  17:30:20 +0000 (0:00:01.074)       0:05:57.611 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nThursday 16 April 2026  17:30:20 +0000 (0:00:00.449)       0:05:58.060 ********\nok: [instance] => (item={'path': '/etc/containerd'})\nok: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nThursday 16 April 2026  17:30:21 +0000 (0:00:00.938)       0:05:58.998 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nThursday 16 April 2026  17:30:22 +0000 (0:00:00.527)       0:05:59.526 ********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nThursday 16 April 2026  17:30:22 +0000 (0:00:00.008)       0:05:59.535 ********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nThursday 16 April 2026  17:30:22 +0000 (0:00:00.380)       0:05:59.915 ********\nfatal: [instance]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on instance's Python /usr/bin/python3.10. 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] ***\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.634)       0:06:00.549 ********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.039)       0:06:00.589 ********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.040)       0:06:00.629 ********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.038)       0:06:00.668 ********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.043)       0:06:00.712 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.044)       0:06:00.756 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.213)       0:06:00.969 ********\nok: [instance] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nThursday 16 April 2026  17:30:23 +0000 (0:00:00.047)       0:06:01.017 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:30:24 +0000 (0:00:00.828)       0:06:01.845 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:30:24 +0000 (0:00:00.055)       0:06:01.901 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:30:24 +0000 (0:00:00.216)       0:06:02.117 ********\nok: [instance] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubectl\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nThursday 16 April 2026  17:30:24 +0000 (0:00:00.063)       0:06:02.180 ********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nThursday 16 April 2026  17:30:25 +0000 (0:00:00.716)       0:06:02.897 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nThursday 16 April 2026  17:30:25 +0000 (0:00:00.057)       0:06:02.955 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nThursday 16 April 2026  17:30:25 +0000 (0:00:00.036)       0:06:02.991 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nThursday 16 April 2026  17:30:25 +0000 (0:00:00.033)       0:06:03.025 ********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nThursday 16 April 2026  17:30:25 +0000 (0:00:00.034)       0:06:03.059 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nThursday 16 April 2026  17:30:26 +0000 (0:00:01.161)       0:06:04.221 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nThursday 16 April 2026  17:30:27 +0000 (0:00:00.457)       0:06:04.678 ********\nok: [instance] => (item={'path': '/etc/containerd'})\nok: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nThursday 16 April 2026  17:30:28 +0000 (0:00:00.941)       0:06:05.620 ********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nThursday 16 April 2026  17:30:28 +0000 (0:00:00.527)       0:06:06.147 ********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nThursday 16 April 2026  17:30:28 +0000 (0:00:00.006)       0:06:06.154 ********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nThursday 16 April 2026  17:30:29 +0000 (0:00:00.356)       0:06:06.510 ********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nThursday 16 April 2026  17:30:29 +0000 (0:00:00.212)       0:06:06.723 ********\nok: [instance] => {\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] *******************\nThursday 16 April 2026  17:30:29 +0000 (0:00:00.059)       0:06:06.782 ********\nfatal: [instance]: 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: [instance]: Download item (4 retries left).\nFAILED - RETRYING: [instance]: Download item (3 retries left).\nFAILED - RETRYING: [instance]: Download item (2 retries left).\nFAILED - RETRYING: [instance]: Download item (1 retries left).\n\nPLAY RECAP *********************************************************************\ninstance                   : ok=158  changed=33   unreachable=0    failed=1    skipped=43   rescued=0    ignored=2\n\nThursday 16 April 2026  17:30:51 +0000 (0:00:21.681)       0:06:28.463 ********\n===============================================================================\nvexxhost.ceph.mon : Run Bootstrap coomand ----------------------------- 127.84s\nvexxhost.ceph.osd : Install OSDs --------------------------------------- 88.65s\nvexxhost.containers.download_artifact : Download item ------------------ 21.68s\nvexxhost.ceph.osd : Get `ceph-volume lvm list` status ------------------ 10.38s\nvexxhost.ceph.mon : Validate monitor exist ----------------------------- 10.29s\nvexxhost.ceph.cephadm : Install packages -------------------------------- 9.16s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 6.25s\nvexxhost.ceph.osd : Ensure all OSDs are non-legacy ---------------------- 5.41s\nvexxhost.ceph.osd : Get `cephadm ls` status ----------------------------- 5.34s\nvexxhost.atmosphere.sysctl : Configure sysctl values -------------------- 4.81s\nvexxhost.containers.download_artifact : Extract archive ----------------- 4.48s\nvexxhost.containers.download_artifact : Extract archive ----------------- 4.07s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.06s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.99s\nvexxhost.ceph.mgr : Enable the Ceph Manager prometheus module ----------- 2.53s\nvexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.07s\nvexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.06s\nvexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 1.99s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.97s\nvexxhost.ceph.osd : Get `ceph orch ps` ---------------------------------- 1.83s\nCRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.v9Wo.aio/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/atmosphere/inventory.yaml /home/zuul/src/github.com/vexxhost/atmosphere/molecule/aio/converge.yml\nERROR    [aio > converge] \u001b[31mExecuted: Failed\u001b[0m\nERROR    Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.v9Wo.aio/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/atmosphere/inventory.yaml /home/zuul/src/github.com/vexxhost/atmosphere/molecule/aio/converge.yml",
                            "stdout_lines": [
                                "Using CPython 3.10.12 interpreter at: /usr/bin/python3",
                                "Creating virtual environment at: .venv",
                                "   Building atmosphere @ file:///home/zuul/src/github.com/vexxhost/atmosphere",
                                "Downloading setuptools (1.1MiB)",
                                "Downloading ansible-core (2.1MiB)",
                                "Downloading netaddr (2.2MiB)",
                                "Downloading pydantic-core (2.0MiB)",
                                "Downloading pygments (1.2MiB)",
                                "Downloading openstacksdk (1.7MiB)",
                                "Downloading rjsonnet (1.2MiB)",
                                "Downloading kubernetes (1.9MiB)",
                                "Downloading cryptography (4.2MiB)",
                                "   Building pyperclip==1.9.0",
                                " Downloading rjsonnet",
                                " Downloading pydantic-core",
                                " Downloading netaddr",
                                " Downloading pygments",
                                " Downloading cryptography",
                                " Downloading setuptools",
                                " Downloading kubernetes",
                                " Downloading ansible-core",
                                " Downloading openstacksdk",
                                "      Built pyperclip==1.9.0",
                                "      Built atmosphere @ file:///home/zuul/src/github.com/vexxhost/atmosphere",
                                "Installed 83 packages in 41ms",
                                "WARNING  Molecule scenarios should migrate to 'extensions/molecule'",
                                "INFO     [aio > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy",
                                "INFO     [aio > prerun] Performing prerun with role_name_check=0...",
                                "INFO     [aio > dependency] Executing",
                                "WARNING  [aio > dependency] Missing roles requirements file: requirements.yml",
                                "WARNING  [aio > dependency] Missing collections requirements file: collections.yml",
                                "WARNING  [aio > dependency] Executed: 2 missing (Remove from test_sequence to suppress)",
                                "INFO     [aio > cleanup] Executing",
                                "WARNING  [aio > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [aio > destroy] Executing",
                                "WARNING  [aio > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [aio > destroy] Executed: Successful",
                                "INFO     [aio > syntax] Executing",
                                "",
                                "playbook: /home/zuul/src/github.com/vexxhost/atmosphere/molecule/aio/converge.yml",
                                "INFO     [aio > syntax] Executed: Successful",
                                "INFO     [aio > create] Executing",
                                "WARNING  [aio > create] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [aio > prepare] Executing",
                                "",
                                "PLAY [Prepare] *****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:23:09 +0000 (0:00:00.024)       0:00:00.024 ********",
                                "[WARNING]: Platform linux on host instance is using the discovered Python",
                                "interpreter at /usr/bin/python3.10, but future installation of another Python",
                                "interpreter could change the meaning of that path. See",
                                "https://docs.ansible.com/ansible-",
                                "core/2.17/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [instance]",
                                "",
                                "TASK [Configure short hostname] ************************************************",
                                "Thursday 16 April 2026  17:23:10 +0000 (0:00:01.173)       0:00:01.197 ********",
                                "changed: [instance]",
                                "",
                                "TASK [Ensure hostname inside hosts file] ***************************************",
                                "Thursday 16 April 2026  17:23:11 +0000 (0:00:00.725)       0:00:01.923 ********",
                                "[WARNING]: Module remote_tmp /root/.ansible/tmp did not exist and was created",
                                "with a mode of 0700, this may cause issues when running as another user. To",
                                "avoid this, create the remote_tmp dir with the correct permissions manually",
                                "changed: [instance]",
                                "",
                                "TASK [Install \"dirmngr\" for GPG keyserver operations] **************************",
                                "Thursday 16 April 2026  17:23:11 +0000 (0:00:00.292)       0:00:02.215 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Purge \"snapd\" package] ***************************************************",
                                "Thursday 16 April 2026  17:23:13 +0000 (0:00:01.231)       0:00:03.447 ********",
                                "ok: [instance]",
                                "",
                                "PLAY [Generate workspace for Atmosphere] ***************************************",
                                "",
                                "TASK [Create folders for workspace] ********************************************",
                                "Thursday 16 April 2026  17:23:13 +0000 (0:00:00.685)       0:00:04.133 ********",
                                "changed: [localhost] => (item=group_vars)",
                                "changed: [localhost] => (item=group_vars/all)",
                                "changed: [localhost] => (item=group_vars/controllers)",
                                "changed: [localhost] => (item=group_vars/cephs)",
                                "changed: [localhost] => (item=group_vars/computes)",
                                "changed: [localhost] => (item=host_vars)",
                                "",
                                "PLAY [Generate Ceph control plane configuration for workspace] *****************",
                                "",
                                "TASK [Ensure the Ceph control plane configuration file exists] *****************",
                                "Thursday 16 April 2026  17:23:14 +0000 (0:00:01.035)       0:00:05.169 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Ceph control plane configuration into a variable] *******",
                                "Thursday 16 April 2026  17:23:15 +0000 (0:00:00.175)       0:00:05.344 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Ceph control plane values for missing variables] ****************",
                                "Thursday 16 April 2026  17:23:15 +0000 (0:00:00.029)       0:00:05.374 ********",
                                "ok: [localhost] => (item={'key': 'ceph_fsid', 'value': 'bea45350-be6b-57ea-ad58-c5458630d4f3'})",
                                "ok: [localhost] => (item={'key': 'ceph_mon_public_network', 'value': '10.96.240.0/24'})",
                                "",
                                "TASK [Write new Ceph control plane configuration file to disk] *****************",
                                "Thursday 16 April 2026  17:23:15 +0000 (0:00:00.049)       0:00:05.423 ********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Ceph OSD configuration for workspace] ***************************",
                                "",
                                "TASK [Ensure the Ceph OSDs configuration file exists] **************************",
                                "Thursday 16 April 2026  17:23:15 +0000 (0:00:00.577)       0:00:06.000 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Ceph OSDs configuration into a variable] ****************",
                                "Thursday 16 April 2026  17:23:15 +0000 (0:00:00.172)       0:00:06.173 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Ceph OSDs values for missing variables] *************************",
                                "Thursday 16 April 2026  17:23:15 +0000 (0:00:00.026)       0:00:06.199 ********",
                                "ok: [localhost] => (item={'key': 'ceph_osd_devices', 'value': ['/dev/vdb', '/dev/vdc', '/dev/vdd']})",
                                "",
                                "TASK [Write new Ceph OSDs configuration file to disk] **************************",
                                "Thursday 16 April 2026  17:23:15 +0000 (0:00:00.034)       0:00:06.234 ********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Kubernetes configuration for workspace] *************************",
                                "",
                                "TASK [Ensure the Kubernetes configuration file exists] *************************",
                                "Thursday 16 April 2026  17:23:16 +0000 (0:00:00.364)       0:00:06.599 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Kubernetes configuration into a variable] ***************",
                                "Thursday 16 April 2026  17:23:16 +0000 (0:00:00.196)       0:00:06.795 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Kubernetes values for missing variables] ************************",
                                "Thursday 16 April 2026  17:23:16 +0000 (0:00:00.026)       0:00:06.821 ********",
                                "ok: [localhost] => (item={'key': 'kubernetes_hostname', 'value': '10.96.240.10'})",
                                "ok: [localhost] => (item={'key': 'kubernetes_keepalived_vrid', 'value': 42})",
                                "ok: [localhost] => (item={'key': 'kubernetes_keepalived_vip', 'value': '10.96.240.10'})",
                                "",
                                "TASK [Write new Kubernetes configuration file to disk] *************************",
                                "Thursday 16 April 2026  17:23:16 +0000 (0:00:00.039)       0:00:06.861 ********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Keepalived configuration for workspace] *************************",
                                "",
                                "TASK [Ensure the Keeaplived configuration file exists] *************************",
                                "Thursday 16 April 2026  17:23:16 +0000 (0:00:00.371)       0:00:07.233 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Keepalived configuration into a variable] ***************",
                                "Thursday 16 April 2026  17:23:17 +0000 (0:00:00.171)       0:00:07.404 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Keepalived values for missing variables] ************************",
                                "Thursday 16 April 2026  17:23:17 +0000 (0:00:00.025)       0:00:07.429 ********",
                                "ok: [localhost] => (item={'key': 'keepalived_interface', 'value': 'br-ex'})",
                                "ok: [localhost] => (item={'key': 'keepalived_vip', 'value': '10.96.250.10'})",
                                "",
                                "TASK [Write new Keepalived configuration file to disk] *************************",
                                "Thursday 16 April 2026  17:23:17 +0000 (0:00:00.035)       0:00:07.465 ********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate endpoints for workspace] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:23:17 +0000 (0:00:00.368)       0:00:07.833 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Ensure the endpoints file exists] ****************************************",
                                "Thursday 16 April 2026  17:23:18 +0000 (0:00:00.698)       0:00:08.532 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current endpoints into a variable] ******************************",
                                "Thursday 16 April 2026  17:23:18 +0000 (0:00:00.179)       0:00:08.712 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate endpoint skeleton for missing variables] ************************",
                                "Thursday 16 April 2026  17:23:18 +0000 (0:00:00.023)       0:00:08.736 ********",
                                "ok: [localhost] => (item=keycloak_host)",
                                "ok: [localhost] => (item=kube_prometheus_stack_grafana_host)",
                                "ok: [localhost] => (item=kube_prometheus_stack_alertmanager_host)",
                                "ok: [localhost] => (item=kube_prometheus_stack_prometheus_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_region_name)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_keystone_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_glance_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_cinder_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_placement_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_barbican_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_neutron_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_nova_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_nova_novnc_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_ironic_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_designate_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_octavia_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_magnum_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_magnum_registry_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_heat_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_heat_cfn_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_horizon_api_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_rgw_host)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_manila_api_host)",
                                "",
                                "TASK [Write new endpoints file to disk] ****************************************",
                                "Thursday 16 April 2026  17:23:19 +0000 (0:00:00.761)       0:00:09.497 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Ensure the endpoints file exists] ****************************************",
                                "Thursday 16 April 2026  17:23:19 +0000 (0:00:00.359)       0:00:09.856 ********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Neutron configuration for workspace] ****************************",
                                "",
                                "TASK [Ensure the Neutron configuration file exists] ****************************",
                                "Thursday 16 April 2026  17:23:19 +0000 (0:00:00.181)       0:00:10.037 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Neutron configuration into a variable] ******************",
                                "Thursday 16 April 2026  17:23:19 +0000 (0:00:00.180)       0:00:10.218 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Neutron values for missing variables] ***************************",
                                "Thursday 16 April 2026  17:23:19 +0000 (0:00:00.029)       0:00:10.247 ********",
                                "ok: [localhost] => (item={'key': 'neutron_networks', 'value': [{'name': 'public', 'external': True, 'shared': True, 'mtu_size': 1500, 'port_security_enabled': True, 'provider_network_type': 'flat', 'provider_physical_network': 'external', 'subnets': [{'name': 'public-subnet', 'cidr': '10.96.250.0/24', 'gateway_ip': '10.96.250.10', 'allocation_pool_start': '10.96.250.200', 'allocation_pool_end': '10.96.250.220', 'enable_dhcp': True}]}]})",
                                "",
                                "TASK [Write new Neutron configuration file to disk] ****************************",
                                "Thursday 16 April 2026  17:23:20 +0000 (0:00:00.042)       0:00:10.289 ********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Nova configuration for workspace] *******************************",
                                "",
                                "TASK [Ensure the Nova configuration file exists] *******************************",
                                "Thursday 16 April 2026  17:23:20 +0000 (0:00:00.343)       0:00:10.633 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Nova configuration into a variable] *********************",
                                "Thursday 16 April 2026  17:23:20 +0000 (0:00:00.172)       0:00:10.805 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Nova values for missing variables] ******************************",
                                "Thursday 16 April 2026  17:23:20 +0000 (0:00:00.032)       0:00:10.837 ********",
                                "ok: [localhost] => (item={'key': 'nova_flavors', 'value': [{'name': 'm1.tiny', 'ram': 512, 'disk': 1, 'vcpus': 1}, {'name': 'm1.small', 'ram': 2048, 'disk': 20, 'vcpus': 1}, {'name': 'm1.medium', 'ram': 4096, 'disk': 40, 'vcpus': 2}, {'name': 'm1.large', 'ram': 8192, 'disk': 80, 'vcpus': 4}, {'name': 'm1.xlarge', 'ram': 16384, 'disk': 160, 'vcpus': 8}]})",
                                "",
                                "TASK [Write new Nova configuration file to disk] *******************************",
                                "Thursday 16 April 2026  17:23:20 +0000 (0:00:00.045)       0:00:10.883 ********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate secrets for workspace] ******************************************",
                                "",
                                "TASK [Ensure the secrets file exists] ******************************************",
                                "Thursday 16 April 2026  17:23:21 +0000 (0:00:00.374)       0:00:11.258 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current secrets into a variable] ********************************",
                                "Thursday 16 April 2026  17:23:21 +0000 (0:00:00.166)       0:00:11.424 ********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate secrets for missing variables] **********************************",
                                "Thursday 16 April 2026  17:23:21 +0000 (0:00:00.030)       0:00:11.455 ********",
                                "ok: [localhost] => (item=heat_auth_encryption_key)",
                                "ok: [localhost] => (item=keepalived_password)",
                                "ok: [localhost] => (item=keycloak_admin_password)",
                                "ok: [localhost] => (item=keycloak_database_password)",
                                "ok: [localhost] => (item=keystone_keycloak_client_secret)",
                                "ok: [localhost] => (item=keystone_oidc_crypto_passphrase)",
                                "ok: [localhost] => (item=kube_prometheus_stack_grafana_admin_password)",
                                "ok: [localhost] => (item=octavia_heartbeat_key)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_rabbitmq_admin_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_memcached_secret_key)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_keystone_admin_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_keystone_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_keystone_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_glance_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_glance_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_glance_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_cinder_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_cinder_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_cinder_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_placement_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_placement_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_barbican_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_barbican_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_neutron_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_neutron_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_neutron_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_neutron_metadata_secret)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_nova_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_nova_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_nova_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_ironic_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_ironic_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_ironic_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_designate_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_designate_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_designate_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_octavia_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_octavia_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_octavia_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_magnum_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_magnum_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_magnum_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_heat_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_heat_trustee_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_heat_stack_user_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_heat_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_heat_rabbitmq_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_horizon_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_tempest_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_openstack_exporter_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_rgw_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_manila_keystone_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_manila_mariadb_password)",
                                "ok: [localhost] => (item=openstack_helm_endpoints_staffeln_mariadb_password)",
                                "",
                                "TASK [Generate base64 encoded secrets] *****************************************",
                                "Thursday 16 April 2026  17:23:21 +0000 (0:00:00.410)       0:00:11.865 ********",
                                "ok: [localhost] => (item=barbican_kek)",
                                "",
                                "TASK [Generate temporary files for generating keys for missing variables] ******",
                                "Thursday 16 April 2026  17:23:21 +0000 (0:00:00.051)       0:00:11.916 ********",
                                "changed: [localhost] => (item=manila_ssh_key)",
                                "changed: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Generate SSH keys for missing variables] *********************************",
                                "Thursday 16 April 2026  17:23:22 +0000 (0:00:00.392)       0:00:12.309 ********",
                                "changed: [localhost] => (item=manila_ssh_key)",
                                "changed: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Set values for SSH keys] *************************************************",
                                "Thursday 16 April 2026  17:23:25 +0000 (0:00:03.291)       0:00:15.601 ********",
                                "ok: [localhost] => (item=manila_ssh_key)",
                                "ok: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Delete the temporary files generated for SSH keys] ***********************",
                                "Thursday 16 April 2026  17:23:25 +0000 (0:00:00.053)       0:00:15.654 ********",
                                "changed: [localhost] => (item=manila_ssh_key)",
                                "changed: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Write new secrets file to disk] ******************************************",
                                "Thursday 16 April 2026  17:23:25 +0000 (0:00:00.373)       0:00:16.028 ********",
                                "changed: [localhost]",
                                "",
                                "TASK [Encrypt secrets file with Vault password] ********************************",
                                "Thursday 16 April 2026  17:23:26 +0000 (0:00:00.366)       0:00:16.394 ********",
                                "skipping: [localhost]",
                                "",
                                "PLAY [Setup networking] ********************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:23:26 +0000 (0:00:00.040)       0:00:16.435 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Create bridge for management network] ************************************",
                                "Thursday 16 April 2026  17:23:26 +0000 (0:00:00.708)       0:00:17.144 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Create fake interface for management bridge] *****************************",
                                "Thursday 16 April 2026  17:23:27 +0000 (0:00:00.351)       0:00:17.495 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Assign dummy interface to management bridge] *****************************",
                                "Thursday 16 April 2026  17:23:27 +0000 (0:00:00.215)       0:00:17.711 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Assign IP address for management bridge] *********************************",
                                "Thursday 16 April 2026  17:23:27 +0000 (0:00:00.216)       0:00:17.927 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Bring up interfaces] *****************************************************",
                                "Thursday 16 April 2026  17:23:27 +0000 (0:00:00.206)       0:00:18.134 ********",
                                "ok: [instance] => (item=br-mgmt)",
                                "ok: [instance] => (item=dummy0)",
                                "",
                                "PLAY [Create devices for Ceph] *************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:23:28 +0000 (0:00:00.405)       0:00:18.539 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Install depedencies] *****************************************************",
                                "Thursday 16 April 2026  17:23:29 +0000 (0:00:00.754)       0:00:19.293 ********",
                                "changed: [instance]",
                                "",
                                "TASK [Start up service] ********************************************************",
                                "Thursday 16 April 2026  17:24:09 +0000 (0:00:40.927)       0:01:00.220 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Generate lvm.conf] *******************************************************",
                                "Thursday 16 April 2026  17:24:10 +0000 (0:00:00.578)       0:01:00.799 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Write /etc/lvm/lvm.conf] *************************************************",
                                "Thursday 16 April 2026  17:24:10 +0000 (0:00:00.217)       0:01:01.017 ********",
                                "changed: [instance]",
                                "",
                                "TASK [Get list of all loopback devices] ****************************************",
                                "Thursday 16 April 2026  17:24:11 +0000 (0:00:00.469)       0:01:01.486 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Fail if there is any existing loopback devices] **************************",
                                "Thursday 16 April 2026  17:24:11 +0000 (0:00:00.196)       0:01:01.683 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [Create devices for Ceph] *************************************************",
                                "Thursday 16 April 2026  17:24:11 +0000 (0:00:00.025)       0:01:01.709 ********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Set permissions on loopback devices] *************************************",
                                "Thursday 16 April 2026  17:24:12 +0000 (0:00:00.594)       0:01:02.304 ********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Start loop devices] ******************************************************",
                                "Thursday 16 April 2026  17:24:12 +0000 (0:00:00.555)       0:01:02.859 ********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Create a volume group for each loop device] ******************************",
                                "Thursday 16 April 2026  17:24:13 +0000 (0:00:00.778)       0:01:03.638 ********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Create a logical volume for each loop device] ****************************",
                                "Thursday 16 April 2026  17:24:16 +0000 (0:00:03.094)       0:01:06.733 ********",
                                "changed: [instance] => (item=ceph-instance-osd0)",
                                "changed: [instance] => (item=ceph-instance-osd1)",
                                "changed: [instance] => (item=ceph-instance-osd2)",
                                "",
                                "PLAY [controllers] *************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:24:18 +0000 (0:00:01.971)       0:01:08.704 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Set masquerade rule] *****************************************************",
                                "Thursday 16 April 2026  17:24:19 +0000 (0:00:00.922)       0:01:09.627 ********",
                                "changed: [instance]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "instance                   : ok=24   changed=10   unreachable=0    failed=0    skipped=1    rescued=0    ignored=0",
                                "localhost                  : ok=40   changed=21   unreachable=0    failed=0    skipped=1    rescued=0    ignored=0",
                                "",
                                "Thursday 16 April 2026  17:24:19 +0000 (0:00:00.469)       0:01:10.096 ********",
                                "===============================================================================",
                                "Install depedencies ---------------------------------------------------- 40.93s",
                                "Generate SSH keys for missing variables --------------------------------- 3.29s",
                                "Create a volume group for each loop device ------------------------------ 3.09s",
                                "Create a logical volume for each loop device ---------------------------- 1.97s",
                                "Install \"dirmngr\" for GPG keyserver operations -------------------------- 1.23s",
                                "Gathering Facts --------------------------------------------------------- 1.17s",
                                "Create folders for workspace -------------------------------------------- 1.04s",
                                "Gathering Facts --------------------------------------------------------- 0.92s",
                                "Start loop devices ------------------------------------------------------ 0.78s",
                                "Generate endpoint skeleton for missing variables ------------------------ 0.76s",
                                "Gathering Facts --------------------------------------------------------- 0.75s",
                                "Configure short hostname ------------------------------------------------ 0.73s",
                                "Gathering Facts --------------------------------------------------------- 0.71s",
                                "Gathering Facts --------------------------------------------------------- 0.70s",
                                "Purge \"snapd\" package --------------------------------------------------- 0.69s",
                                "Create devices for Ceph ------------------------------------------------- 0.59s",
                                "Start up service -------------------------------------------------------- 0.58s",
                                "Write new Ceph control plane configuration file to disk ----------------- 0.58s",
                                "Set permissions on loopback devices ------------------------------------- 0.56s",
                                "Set masquerade rule ----------------------------------------------------- 0.47s",
                                "INFO     [aio > prepare] Executed: Successful",
                                "INFO     [aio > converge] Executing",
                                "",
                                "PLAY [all] *********************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:24:22 +0000 (0:00:00.018)       0:00:00.018 ********",
                                "[WARNING]: Platform linux on host instance is using the discovered Python",
                                "interpreter at /usr/bin/python3.10, but future installation of another Python",
                                "interpreter could change the meaning of that path. See",
                                "https://docs.ansible.com/ansible-",
                                "core/2.17/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [instance]",
                                "",
                                "TASK [Fail if atmosphere_ceph_enabled is set] **********************************",
                                "Thursday 16 April 2026  17:24:23 +0000 (0:00:01.207)       0:00:01.225 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [Set a fact with the \"atmosphere_images\" for other plays] *****************",
                                "Thursday 16 April 2026  17:24:23 +0000 (0:00:00.041)       0:00:01.267 ********",
                                "ok: [instance]",
                                "",
                                "PLAY [Deploy Ceph monitors & managers] *****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:24:24 +0000 (0:00:00.184)       0:00:01.452 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:24:25 +0000 (0:00:00.914)       0:00:02.366 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:24:25 +0000 (0:00:00.290)       0:00:02.657 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Thursday 16 April 2026  17:24:25 +0000 (0:00:00.046)       0:00:02.704 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:24:25 +0000 (0:00:00.304)       0:00:03.008 ********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Thursday 16 April 2026  17:24:25 +0000 (0:00:00.087)       0:00:03.096 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:24:26 +0000 (0:00:00.810)       0:00:03.906 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:24:26 +0000 (0:00:00.062)       0:00:03.969 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:24:26 +0000 (0:00:00.053)       0:00:04.023 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:24:26 +0000 (0:00:00.215)       0:00:04.239 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:24:28 +0000 (0:00:01.391)       0:00:05.630 ********",
                                "ok: [instance] => {",
                                "    \"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] *******************",
                                "Thursday 16 April 2026  17:24:28 +0000 (0:00:00.082)       0:00:05.713 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:24:29 +0000 (0:00:00.742)       0:00:06.456 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Thursday 16 April 2026  17:24:33 +0000 (0:00:04.066)       0:00:10.522 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Thursday 16 April 2026  17:24:33 +0000 (0:00:00.034)       0:00:10.556 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Thursday 16 April 2026  17:24:33 +0000 (0:00:00.042)       0:00:10.599 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Thursday 16 April 2026  17:24:33 +0000 (0:00:00.035)       0:00:10.635 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Thursday 16 April 2026  17:24:39 +0000 (0:00:06.251)       0:00:16.886 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Thursday 16 April 2026  17:24:40 +0000 (0:00:00.676)       0:00:17.562 ********",
                                "changed: [instance] => (item={'path': '/etc/containerd'})",
                                "changed: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Thursday 16 April 2026  17:24:41 +0000 (0:00:00.986)       0:00:18.548 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Thursday 16 April 2026  17:24:41 +0000 (0:00:00.586)       0:00:19.135 ********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************",
                                "Thursday 16 April 2026  17:24:41 +0000 (0:00:00.009)       0:00:19.145 ********",
                                "ok: [instance]",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Thursday 16 April 2026  17:24:42 +0000 (0:00:00.956)       0:00:20.102 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Thursday 16 April 2026  17:24:43 +0000 (0:00:00.464)       0:00:20.566 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:24:43 +0000 (0:00:00.564)       0:00:21.130 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:24:44 +0000 (0:00:00.214)       0:00:21.344 ********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Thursday 16 April 2026  17:24:44 +0000 (0:00:00.056)       0:00:21.401 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:24:45 +0000 (0:00:00.935)       0:00:22.337 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Install AppArmor packages] ******************",
                                "Thursday 16 April 2026  17:24:49 +0000 (0:00:04.476)       0:00:26.813 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************",
                                "Thursday 16 April 2026  17:24:50 +0000 (0:00:01.144)       0:00:27.958 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create systemd service file for docker] *****",
                                "Thursday 16 April 2026  17:24:51 +0000 (0:00:00.420)       0:00:28.379 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create folders for configuration] ***********",
                                "Thursday 16 April 2026  17:24:51 +0000 (0:00:00.505)       0:00:28.884 ********",
                                "changed: [instance] => (item={'path': '/etc/docker'})",
                                "changed: [instance] => (item={'path': '/var/lib/docker', 'mode': '0o710'})",
                                "changed: [instance] => (item={'path': '/run/docker', 'mode': '0o711'})",
                                "",
                                "TASK [vexxhost.containers.docker : Create systemd socket file for docker] ******",
                                "Thursday 16 April 2026  17:24:52 +0000 (0:00:00.557)       0:00:29.442 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create docker daemon config file] ***********",
                                "Thursday 16 April 2026  17:24:52 +0000 (0:00:00.467)       0:00:29.909 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Force any restarts if necessary] ************",
                                "Thursday 16 April 2026  17:24:53 +0000 (0:00:00.480)       0:00:30.390 ********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************",
                                "Thursday 16 April 2026  17:24:53 +0000 (0:00:00.009)       0:00:30.399 ********",
                                "ok: [instance]",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.docker : Restart docker] ******************",
                                "Thursday 16 April 2026  17:24:53 +0000 (0:00:00.689)       0:00:31.089 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Enable and start service] *******************",
                                "Thursday 16 April 2026  17:24:54 +0000 (0:00:00.828)       0:00:31.917 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******",
                                "Thursday 16 April 2026  17:24:56 +0000 (0:00:01.576)       0:00:33.494 ********",
                                "ok: [instance] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/cephadm/vars/ubuntu-22.04.yml)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Install packages] ********************************",
                                "Thursday 16 April 2026  17:24:56 +0000 (0:00:00.065)       0:00:33.560 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure services are started] *********************",
                                "Thursday 16 April 2026  17:25:05 +0000 (0:00:09.163)       0:00:42.723 ********",
                                "ok: [instance] => (item=chronyd)",
                                "ok: [instance] => (item=sshd)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************",
                                "Thursday 16 April 2026  17:25:06 +0000 (0:00:00.682)       0:00:43.406 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************",
                                "Thursday 16 April 2026  17:25:06 +0000 (0:00:00.320)       0:00:43.726 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************",
                                "Thursday 16 April 2026  17:25:06 +0000 (0:00:00.215)       0:00:43.942 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***",
                                "Thursday 16 April 2026  17:25:07 +0000 (0:00:00.546)       0:00:44.488 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Get `cephadm ls` status] *****************************",
                                "Thursday 16 April 2026  17:25:07 +0000 (0:00:00.424)       0:00:44.912 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Parse the `cephadm ls` output] ***********************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:01.734)       0:00:46.647 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Assimilate existing configs in `ceph.conf`] **********",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.056)       0:00:46.704 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Adopt monitor to cluster] ****************************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.039)       0:00:46.743 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Adopt manager to cluster] ****************************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.044)       0:00:46.787 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Enable \"cephadm\" mgr module] *************************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.044)       0:00:46.832 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Set orchestrator backend to \"cephadm\"] ***************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.042)       0:00:46.874 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Use `cephadm` user for cephadm] **********************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.044)       0:00:46.919 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Generate \"cephadm\" key] ******************************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.042)       0:00:46.961 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Set Ceph Monitor IP address] *************************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.042)       0:00:47.004 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Check if any node is bootstrapped] *******************",
                                "Thursday 16 April 2026  17:25:09 +0000 (0:00:00.133)       0:00:47.138 ********",
                                "ok: [instance] => (item=instance)",
                                "",
                                "TASK [vexxhost.ceph.mon : Select pre-existing bootstrap node if exists] ********",
                                "Thursday 16 April 2026  17:25:10 +0000 (0:00:00.233)       0:00:47.371 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Bootstrap cluster] ***********************************",
                                "Thursday 16 April 2026  17:25:10 +0000 (0:00:00.062)       0:00:47.434 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/mon/tasks/bootstrap-ceph.yml for instance",
                                "",
                                "TASK [vexxhost.ceph.mon : Generate temporary file for \"ceph.conf\"] *************",
                                "Thursday 16 April 2026  17:25:10 +0000 (0:00:00.106)       0:00:47.540 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Include extra configuration values] ******************",
                                "Thursday 16 April 2026  17:25:10 +0000 (0:00:00.380)       0:00:47.921 ********",
                                "changed: [instance] => (item={'option': 'mon allow pool size one', 'section': 'global', 'value': True})",
                                "changed: [instance] => (item={'option': 'osd crush chooseleaf type', 'section': 'global', 'value': 0})",
                                "changed: [instance] => (item={'option': 'auth allow insecure global id reclaim', 'section': 'mon', 'value': False})",
                                "",
                                "TASK [vexxhost.ceph.mon : Run Bootstrap coomand] *******************************",
                                "Thursday 16 April 2026  17:25:11 +0000 (0:00:00.793)       0:00:48.714 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Remove temporary file for \"ceph.conf\"] ***************",
                                "Thursday 16 April 2026  17:27:19 +0000 (0:02:07.842)       0:02:56.556 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Set bootstrap node] **********************************",
                                "Thursday 16 April 2026  17:27:19 +0000 (0:00:00.229)       0:02:56.785 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Install Ceph host] *******************************************************",
                                "Thursday 16 April 2026  17:27:19 +0000 (0:00:00.050)       0:02:56.836 ********",
                                "included: vexxhost.ceph.cephadm_host for instance",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******",
                                "Thursday 16 April 2026  17:27:19 +0000 (0:00:00.079)       0:02:56.916 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***",
                                "Thursday 16 April 2026  17:27:21 +0000 (0:00:01.654)       0:02:58.571 ********",
                                "ok: [instance] => (item=instance)",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********",
                                "Thursday 16 April 2026  17:27:21 +0000 (0:00:00.071)       0:02:58.642 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************",
                                "Thursday 16 April 2026  17:27:21 +0000 (0:00:00.435)       0:02:59.078 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Configure \"mon\" label for monitors] ******************",
                                "Thursday 16 April 2026  17:27:23 +0000 (0:00:01.985)       0:03:01.064 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Validate monitor exist] ******************************",
                                "Thursday 16 April 2026  17:27:25 +0000 (0:00:01.731)       0:03:02.796 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Install Ceph host] *******************************************************",
                                "Thursday 16 April 2026  17:27:35 +0000 (0:00:10.294)       0:03:13.090 ********",
                                "included: vexxhost.ceph.cephadm_host for instance",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******",
                                "Thursday 16 April 2026  17:27:35 +0000 (0:00:00.081)       0:03:13.172 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***",
                                "Thursday 16 April 2026  17:27:35 +0000 (0:00:00.058)       0:03:13.231 ********",
                                "skipping: [instance] => (item=instance)",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********",
                                "Thursday 16 April 2026  17:27:35 +0000 (0:00:00.057)       0:03:13.288 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************",
                                "Thursday 16 April 2026  17:27:36 +0000 (0:00:00.260)       0:03:13.549 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mgr : Configure \"mgr\" label for managers] ******************",
                                "Thursday 16 April 2026  17:27:38 +0000 (0:00:02.074)       0:03:15.623 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mgr : Validate manager exist] ******************************",
                                "Thursday 16 April 2026  17:27:40 +0000 (0:00:01.767)       0:03:17.391 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mgr : Enable the Ceph Manager prometheus module] ***********",
                                "Thursday 16 April 2026  17:27:41 +0000 (0:00:01.579)       0:03:18.970 ********",
                                "ok: [instance]",
                                "",
                                "PLAY [Deploy Ceph OSDs] ********************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:27:44 +0000 (0:00:02.526)       0:03:21.497 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:27:45 +0000 (0:00:00.912)       0:03:22.409 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:27:45 +0000 (0:00:00.207)       0:03:22.617 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Thursday 16 April 2026  17:27:45 +0000 (0:00:00.044)       0:03:22.662 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:27:45 +0000 (0:00:00.210)       0:03:22.873 ********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Thursday 16 April 2026  17:27:45 +0000 (0:00:00.056)       0:03:22.929 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:27:45 +0000 (0:00:00.301)       0:03:23.230 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:27:45 +0000 (0:00:00.050)       0:03:23.281 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:27:46 +0000 (0:00:00.044)       0:03:23.326 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:27:46 +0000 (0:00:00.201)       0:03:23.527 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:27:47 +0000 (0:00:01.030)       0:03:24.558 ********",
                                "ok: [instance] => {",
                                "    \"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] *******************",
                                "Thursday 16 April 2026  17:27:47 +0000 (0:00:00.068)       0:03:24.627 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:27:47 +0000 (0:00:00.345)       0:03:24.972 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Thursday 16 April 2026  17:27:50 +0000 (0:00:02.991)       0:03:27.963 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Thursday 16 April 2026  17:27:50 +0000 (0:00:00.035)       0:03:27.998 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Thursday 16 April 2026  17:27:50 +0000 (0:00:00.035)       0:03:28.034 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Thursday 16 April 2026  17:27:50 +0000 (0:00:00.036)       0:03:28.070 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Thursday 16 April 2026  17:27:51 +0000 (0:00:01.054)       0:03:29.124 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Thursday 16 April 2026  17:27:52 +0000 (0:00:00.434)       0:03:29.558 ********",
                                "ok: [instance] => (item={'path': '/etc/containerd'})",
                                "ok: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Thursday 16 April 2026  17:27:53 +0000 (0:00:00.893)       0:03:30.452 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Thursday 16 April 2026  17:27:53 +0000 (0:00:00.495)       0:03:30.947 ********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Thursday 16 April 2026  17:27:53 +0000 (0:00:00.006)       0:03:30.954 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:27:54 +0000 (0:00:00.348)       0:03:31.302 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:27:54 +0000 (0:00:00.202)       0:03:31.504 ********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Thursday 16 April 2026  17:27:54 +0000 (0:00:00.053)       0:03:31.558 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:27:54 +0000 (0:00:00.347)       0:03:31.906 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Install AppArmor packages] ******************",
                                "Thursday 16 April 2026  17:27:57 +0000 (0:00:03.059)       0:03:34.965 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************",
                                "Thursday 16 April 2026  17:27:58 +0000 (0:00:01.033)       0:03:35.998 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create systemd service file for docker] *****",
                                "Thursday 16 April 2026  17:27:58 +0000 (0:00:00.194)       0:03:36.193 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create folders for configuration] ***********",
                                "Thursday 16 April 2026  17:27:59 +0000 (0:00:00.425)       0:03:36.619 ********",
                                "ok: [instance] => (item={'path': '/etc/docker'})",
                                "ok: [instance] => (item={'path': '/var/lib/docker', 'mode': '0o710'})",
                                "ok: [instance] => (item={'path': '/run/docker', 'mode': '0o711'})",
                                "",
                                "TASK [vexxhost.containers.docker : Create systemd socket file for docker] ******",
                                "Thursday 16 April 2026  17:27:59 +0000 (0:00:00.548)       0:03:37.167 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create docker daemon config file] ***********",
                                "Thursday 16 April 2026  17:28:00 +0000 (0:00:00.426)       0:03:37.594 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Force any restarts if necessary] ************",
                                "Thursday 16 April 2026  17:28:00 +0000 (0:00:00.424)       0:03:38.019 ********",
                                "",
                                "TASK [vexxhost.containers.docker : Enable and start service] *******************",
                                "Thursday 16 April 2026  17:28:00 +0000 (0:00:00.007)       0:03:38.026 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******",
                                "Thursday 16 April 2026  17:28:01 +0000 (0:00:00.359)       0:03:38.385 ********",
                                "ok: [instance] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/cephadm/vars/ubuntu-22.04.yml)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Install packages] ********************************",
                                "Thursday 16 April 2026  17:28:01 +0000 (0:00:00.055)       0:03:38.440 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure services are started] *********************",
                                "Thursday 16 April 2026  17:28:02 +0000 (0:00:01.040)       0:03:39.480 ********",
                                "ok: [instance] => (item=chronyd)",
                                "ok: [instance] => (item=sshd)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************",
                                "Thursday 16 April 2026  17:28:02 +0000 (0:00:00.653)       0:03:40.134 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************",
                                "Thursday 16 April 2026  17:28:03 +0000 (0:00:00.623)       0:03:40.758 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************",
                                "Thursday 16 April 2026  17:28:03 +0000 (0:00:00.217)       0:03:40.975 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***",
                                "Thursday 16 April 2026  17:28:03 +0000 (0:00:00.258)       0:03:41.234 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get monitor status] **********************************",
                                "Thursday 16 April 2026  17:28:04 +0000 (0:00:00.201)       0:03:41.436 ********",
                                "ok: [instance] => (item=instance)",
                                "",
                                "TASK [vexxhost.ceph.osd : Select admin host] ***********************************",
                                "Thursday 16 April 2026  17:28:04 +0000 (0:00:00.229)       0:03:41.665 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get `cephadm ls` status] *****************************",
                                "Thursday 16 April 2026  17:28:04 +0000 (0:00:00.052)       0:03:41.717 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Parse the `cephadm ls` output] ***********************",
                                "Thursday 16 April 2026  17:28:09 +0000 (0:00:05.339)       0:03:47.056 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Install Ceph host] *******************************************************",
                                "Thursday 16 April 2026  17:28:09 +0000 (0:00:00.053)       0:03:47.110 ********",
                                "included: vexxhost.ceph.cephadm_host for instance",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******",
                                "Thursday 16 April 2026  17:28:09 +0000 (0:00:00.072)       0:03:47.182 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***",
                                "Thursday 16 April 2026  17:28:09 +0000 (0:00:00.059)       0:03:47.241 ********",
                                "skipping: [instance] => (item=instance)",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********",
                                "Thursday 16 April 2026  17:28:10 +0000 (0:00:00.069)       0:03:47.311 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************",
                                "Thursday 16 April 2026  17:28:10 +0000 (0:00:00.261)       0:03:47.572 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Adopt OSDs to cluster] *******************************",
                                "Thursday 16 April 2026  17:28:12 +0000 (0:00:02.056)       0:03:49.628 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Wait until OSD added to cephadm] *********************",
                                "Thursday 16 April 2026  17:28:12 +0000 (0:00:00.034)       0:03:49.663 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Ensure all OSDs are non-legacy] **********************",
                                "Thursday 16 April 2026  17:28:12 +0000 (0:00:00.030)       0:03:49.693 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get `ceph-volume lvm list` status] *******************",
                                "Thursday 16 April 2026  17:28:17 +0000 (0:00:05.406)       0:03:55.099 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Install OSDs] ****************************************",
                                "Thursday 16 April 2026  17:28:28 +0000 (0:00:10.379)       0:04:05.479 ********",
                                "ok: [instance] => (item=/dev/ceph-instance-osd0/data)",
                                "ok: [instance] => (item=/dev/ceph-instance-osd1/data)",
                                "ok: [instance] => (item=/dev/ceph-instance-osd2/data)",
                                "",
                                "TASK [vexxhost.ceph.osd : Get mon dump] ****************************************",
                                "Thursday 16 April 2026  17:29:56 +0000 (0:01:28.649)       0:05:34.128 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Mark require osd release] ****************************",
                                "Thursday 16 April 2026  17:29:58 +0000 (0:00:01.726)       0:05:35.855 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Wait for all OSD to be running] **********************",
                                "Thursday 16 April 2026  17:30:00 +0000 (0:00:01.811)       0:05:37.667 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/osd/tasks/check-osds.yml for instance",
                                "",
                                "TASK [vexxhost.ceph.osd : Set the retry count] *********************************",
                                "Thursday 16 April 2026  17:30:00 +0000 (0:00:00.076)       0:05:37.744 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get `ceph orch ps`] **********************************",
                                "Thursday 16 April 2026  17:30:00 +0000 (0:00:00.050)       0:05:37.794 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : OSD daemon list] *************************************",
                                "Thursday 16 April 2026  17:30:02 +0000 (0:00:01.832)       0:05:39.627 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Fail if any OSD not running] *************************",
                                "Thursday 16 April 2026  17:30:02 +0000 (0:00:00.043)       0:05:39.671 ********",
                                "skipping: [instance] => (item=1)",
                                "skipping: [instance] => (item=1)",
                                "skipping: [instance] => (item=1)",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Fail if any duplicate OSD ID] ************************",
                                "Thursday 16 April 2026  17:30:02 +0000 (0:00:00.050)       0:05:39.721 ********",
                                "skipping: [instance]",
                                "",
                                "PLAY [all] *********************************************************************",
                                "",
                                "TASK [Ensure RBD kernel module is loaded] **************************************",
                                "Thursday 16 April 2026  17:30:02 +0000 (0:00:00.059)       0:05:39.780 ********",
                                "changed: [instance]",
                                "",
                                "PLAY [all] *********************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:30:02 +0000 (0:00:00.452)       0:05:40.233 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.atmosphere.sysctl : Configure sysctl values] ********************",
                                "Thursday 16 April 2026  17:30:04 +0000 (0:00:01.233)       0:05:41.466 ********",
                                "changed: [instance] => (item={'name': 'fs.aio-max-nr', 'value': 1048576})",
                                "changed: [instance] => (item={'name': 'net.ipv4.tcp_timestamps', 'value': 0})",
                                "changed: [instance] => (item={'name': 'net.ipv4.tcp_sack', 'value': 1})",
                                "changed: [instance] => (item={'name': 'net.core.netdev_budget', 'value': 1000})",
                                "changed: [instance] => (item={'name': 'net.core.netdev_max_backlog', 'value': 250000})",
                                "changed: [instance] => (item={'name': 'net.core.rmem_max', 'value': 4194304})",
                                "changed: [instance] => (item={'name': 'net.core.wmem_max', 'value': 4194304})",
                                "changed: [instance] => (item={'name': 'net.core.rmem_default', 'value': 4194304})",
                                "changed: [instance] => (item={'name': 'net.core.wmem_default', 'value': 4194304})",
                                "changed: [instance] => (item={'name': 'net.core.optmem_max', 'value': 4194304})",
                                "changed: [instance] => (item={'name': 'net.ipv4.tcp_rmem', 'value': '4096 87380 4194304'})",
                                "changed: [instance] => (item={'name': 'net.ipv4.tcp_wmem', 'value': '4096 65536 4194304'})",
                                "changed: [instance] => (item={'name': 'net.ipv4.tcp_low_latency', 'value': 1})",
                                "changed: [instance] => (item={'name': 'net.ipv4.tcp_adv_win_scale', 'value': 1})",
                                "changed: [instance] => (item={'name': 'net.ipv4.neigh.default.gc_thresh1', 'value': 128})",
                                "changed: [instance] => (item={'name': 'net.ipv4.neigh.default.gc_thresh2', 'value': 28872})",
                                "changed: [instance] => (item={'name': 'net.ipv4.neigh.default.gc_thresh3', 'value': 32768})",
                                "changed: [instance] => (item={'name': 'net.ipv6.neigh.default.gc_thresh1', 'value': 128})",
                                "changed: [instance] => (item={'name': 'net.ipv6.neigh.default.gc_thresh2', 'value': 28872})",
                                "changed: [instance] => (item={'name': 'net.ipv6.neigh.default.gc_thresh3', 'value': 32768})",
                                "",
                                "TASK [vexxhost.atmosphere.ethtool : Create folder for persistent configuration] ***",
                                "Thursday 16 April 2026  17:30:08 +0000 (0:00:04.811)       0:05:46.277 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.atmosphere.ethtool : Install persistent \"ethtool\" tuning] *******",
                                "Thursday 16 April 2026  17:30:09 +0000 (0:00:00.224)       0:05:46.501 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.atmosphere.ethtool : Run \"ethtool\" tuning] **********************",
                                "Thursday 16 April 2026  17:30:09 +0000 (0:00:00.485)       0:05:46.987 ********",
                                "ok: [instance]",
                                "",
                                "TASK [Set a fact with the \"atmosphere_images\" for other plays] *****************",
                                "Thursday 16 April 2026  17:30:09 +0000 (0:00:00.247)       0:05:47.234 ********",
                                "ok: [instance]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:30:09 +0000 (0:00:00.048)       0:05:47.282 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Thursday 16 April 2026  17:30:10 +0000 (0:00:00.923)       0:05:48.206 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Thursday 16 April 2026  17:30:11 +0000 (0:00:00.214)       0:05:48.420 ********",
                                "ok: [instance] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [instance] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [instance] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [instance] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [instance] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****",
                                "Thursday 16 April 2026  17:30:12 +0000 (0:00:00.886)       0:05:49.306 ********",
                                "failed: [instance] (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: [instance] (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: [instance] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Thursday 16 April 2026  17:30:12 +0000 (0:00:00.508)       0:05:49.815 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Thursday 16 April 2026  17:30:12 +0000 (0:00:00.186)       0:05:50.001 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Thursday 16 April 2026  17:30:12 +0000 (0:00:00.195)       0:05:50.197 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Thursday 16 April 2026  17:30:12 +0000 (0:00:00.030)       0:05:50.227 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Thursday 16 April 2026  17:30:12 +0000 (0:00:00.041)       0:05:50.269 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Thursday 16 April 2026  17:30:13 +0000 (0:00:00.526)       0:05:50.795 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Thursday 16 April 2026  17:30:13 +0000 (0:00:00.191)       0:05:50.987 ********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Thursday 16 April 2026  17:30:13 +0000 (0:00:00.058)       0:05:51.045 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:30:14 +0000 (0:00:00.932)       0:05:51.977 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:30:14 +0000 (0:00:00.198)       0:05:52.176 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Thursday 16 April 2026  17:30:14 +0000 (0:00:00.041)       0:05:52.217 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:30:15 +0000 (0:00:00.204)       0:05:52.421 ********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Thursday 16 April 2026  17:30:15 +0000 (0:00:00.055)       0:05:52.476 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:30:15 +0000 (0:00:00.303)       0:05:52.780 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:30:15 +0000 (0:00:00.046)       0:05:52.827 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Thursday 16 April 2026  17:30:15 +0000 (0:00:00.209)       0:05:53.036 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:30:16 +0000 (0:00:01.035)       0:05:54.072 ********",
                                "ok: [instance] => {",
                                "    \"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] *******************",
                                "Thursday 16 April 2026  17:30:16 +0000 (0:00:00.059)       0:05:54.131 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:30:17 +0000 (0:00:00.330)       0:05:54.461 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Thursday 16 April 2026  17:30:19 +0000 (0:00:01.969)       0:05:56.431 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Thursday 16 April 2026  17:30:19 +0000 (0:00:00.032)       0:05:56.463 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Thursday 16 April 2026  17:30:19 +0000 (0:00:00.035)       0:05:56.498 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Thursday 16 April 2026  17:30:19 +0000 (0:00:00.037)       0:05:56.536 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Thursday 16 April 2026  17:30:20 +0000 (0:00:01.074)       0:05:57.611 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Thursday 16 April 2026  17:30:20 +0000 (0:00:00.449)       0:05:58.060 ********",
                                "ok: [instance] => (item={'path': '/etc/containerd'})",
                                "ok: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Thursday 16 April 2026  17:30:21 +0000 (0:00:00.938)       0:05:58.998 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Thursday 16 April 2026  17:30:22 +0000 (0:00:00.527)       0:05:59.526 ********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Thursday 16 April 2026  17:30:22 +0000 (0:00:00.008)       0:05:59.535 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Thursday 16 April 2026  17:30:22 +0000 (0:00:00.380)       0:05:59.915 ********",
                                "fatal: [instance]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on instance's Python /usr/bin/python3.10. 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] ***",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.634)       0:06:00.549 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.039)       0:06:00.589 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.040)       0:06:00.629 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.038)       0:06:00.668 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.043)       0:06:00.712 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.044)       0:06:00.756 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.213)       0:06:00.969 ********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Thursday 16 April 2026  17:30:23 +0000 (0:00:00.047)       0:06:01.017 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:30:24 +0000 (0:00:00.828)       0:06:01.845 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:30:24 +0000 (0:00:00.055)       0:06:01.901 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:30:24 +0000 (0:00:00.216)       0:06:02.117 ********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubectl\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Thursday 16 April 2026  17:30:24 +0000 (0:00:00.063)       0:06:02.180 ********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Thursday 16 April 2026  17:30:25 +0000 (0:00:00.716)       0:06:02.897 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Thursday 16 April 2026  17:30:25 +0000 (0:00:00.057)       0:06:02.955 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Thursday 16 April 2026  17:30:25 +0000 (0:00:00.036)       0:06:02.991 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Thursday 16 April 2026  17:30:25 +0000 (0:00:00.033)       0:06:03.025 ********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Thursday 16 April 2026  17:30:25 +0000 (0:00:00.034)       0:06:03.059 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Thursday 16 April 2026  17:30:26 +0000 (0:00:01.161)       0:06:04.221 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Thursday 16 April 2026  17:30:27 +0000 (0:00:00.457)       0:06:04.678 ********",
                                "ok: [instance] => (item={'path': '/etc/containerd'})",
                                "ok: [instance] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [instance] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [instance] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Thursday 16 April 2026  17:30:28 +0000 (0:00:00.941)       0:06:05.620 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Thursday 16 April 2026  17:30:28 +0000 (0:00:00.527)       0:06:06.147 ********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Thursday 16 April 2026  17:30:28 +0000 (0:00:00.006)       0:06:06.154 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Thursday 16 April 2026  17:30:29 +0000 (0:00:00.356)       0:06:06.510 ********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Thursday 16 April 2026  17:30:29 +0000 (0:00:00.212)       0:06:06.723 ********",
                                "ok: [instance] => {",
                                "    \"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] *******************",
                                "Thursday 16 April 2026  17:30:29 +0000 (0:00:00.059)       0:06:06.782 ********",
                                "fatal: [instance]: 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: [instance]: Download item (4 retries left).",
                                "FAILED - RETRYING: [instance]: Download item (3 retries left).",
                                "FAILED - RETRYING: [instance]: Download item (2 retries left).",
                                "FAILED - RETRYING: [instance]: Download item (1 retries left).",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "instance                   : ok=158  changed=33   unreachable=0    failed=1    skipped=43   rescued=0    ignored=2",
                                "",
                                "Thursday 16 April 2026  17:30:51 +0000 (0:00:21.681)       0:06:28.463 ********",
                                "===============================================================================",
                                "vexxhost.ceph.mon : Run Bootstrap coomand ----------------------------- 127.84s",
                                "vexxhost.ceph.osd : Install OSDs --------------------------------------- 88.65s",
                                "vexxhost.containers.download_artifact : Download item ------------------ 21.68s",
                                "vexxhost.ceph.osd : Get `ceph-volume lvm list` status ------------------ 10.38s",
                                "vexxhost.ceph.mon : Validate monitor exist ----------------------------- 10.29s",
                                "vexxhost.ceph.cephadm : Install packages -------------------------------- 9.16s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 6.25s",
                                "vexxhost.ceph.osd : Ensure all OSDs are non-legacy ---------------------- 5.41s",
                                "vexxhost.ceph.osd : Get `cephadm ls` status ----------------------------- 5.34s",
                                "vexxhost.atmosphere.sysctl : Configure sysctl values -------------------- 4.81s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 4.48s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 4.07s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.06s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.99s",
                                "vexxhost.ceph.mgr : Enable the Ceph Manager prometheus module ----------- 2.53s",
                                "vexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.07s",
                                "vexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.06s",
                                "vexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 1.99s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.97s",
                                "vexxhost.ceph.osd : Get `ceph orch ps` ---------------------------------- 1.83s",
                                "CRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.v9Wo.aio/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/atmosphere/inventory.yaml /home/zuul/src/github.com/vexxhost/atmosphere/molecule/aio/converge.yml",
                                "ERROR    [aio > converge] \u001b[31mExecuted: Failed\u001b[0m",
                                "ERROR    Ansible return code was 2, command was: ansible-playbook --inventory /home/zuul/.ansible/tmp/molecule.v9Wo.aio/inventory --skip-tags molecule-notest,notest --inventory=/home/zuul/src/github.com/vexxhost/atmosphere/inventory.yaml /home/zuul/src/github.com/vexxhost/atmosphere/molecule/aio/converge.yml"
                            ],
                            "zuul_log_id": "0242ac17-0011-7fbe-4b9e-000000000006-1-instance"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:51.780093Z",
                            "start": "2026-04-16T17:22:23.618390Z"
                        },
                        "id": "0242ac17-0011-7fbe-4b9e-000000000006",
                        "name": "Run Molecule scenario"
                    }
                }
            ]
        }
    ],
    "stats": {
        "instance": {
            "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/atmosphere/test-playbooks/molecule/post.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-16T17:31:02.693547Z",
                    "start": "2026-04-16T17:30:52.644971Z"
                },
                "id": "0242ac17-0011-b9fa-5b5e-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/system",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/system",
                                    "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/system",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/system",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:52.991698Z",
                            "start": "2026-04-16T17:30:52.659704Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000000c",
                        "name": "creating directory for system status"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -x\nsystemd-cgls --full --all --no-pager > /tmp/logs/system/systemd-cgls.txt\nip addr > /tmp/logs/system/ip-addr.txt\nip route > /tmp/logs/system/ip-route.txt\nlsblk > /tmp/logs/system/lsblk.txt\nmount > /tmp/logs/system/mount.txt\ndocker images > /tmp/logs/system/docker-images.txt\nbrctl show > /tmp/logs/system/brctl-show.txt\nps aux --sort=-%mem > /tmp/logs/system/ps.txt\ndpkg -l > /tmp/logs/system/packages.txt\nCONTAINERS=($(docker ps -a --format '{{ .Names }}' --filter label=zuul))\nif [ ! -z \"$CONTAINERS\" ]; then\n  mkdir -p \"/tmp/logs/system/containers\"\n  for CONTAINER in ${CONTAINERS}; do\n    docker logs \"${CONTAINER}\" > \"/tmp/logs/system/containers/${CONTAINER}.txt\"\n  done\nfi",
                            "delta": "0:00:00.115481",
                            "end": "2026-04-16 17:30:53.460459",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -x\nsystemd-cgls --full --all --no-pager > /tmp/logs/system/systemd-cgls.txt\nip addr > /tmp/logs/system/ip-addr.txt\nip route > /tmp/logs/system/ip-route.txt\nlsblk > /tmp/logs/system/lsblk.txt\nmount > /tmp/logs/system/mount.txt\ndocker images > /tmp/logs/system/docker-images.txt\nbrctl show > /tmp/logs/system/brctl-show.txt\nps aux --sort=-%mem > /tmp/logs/system/ps.txt\ndpkg -l > /tmp/logs/system/packages.txt\nCONTAINERS=($(docker ps -a --format '{{ .Names }}' --filter label=zuul))\nif [ ! -z \"$CONTAINERS\" ]; then\n  mkdir -p \"/tmp/logs/system/containers\"\n  for CONTAINER in ${CONTAINERS}; do\n    docker logs \"${CONTAINER}\" > \"/tmp/logs/system/containers/${CONTAINER}.txt\"\n  done\nfi",
                                    "_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-b9fa-5b5e-00000000000d-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:30:53.344978",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "+ systemd-cgls --full --all --no-pager\n+ ip addr\n+ ip route\n+ lsblk\n+ mount\n+ docker images\n+ brctl show\n/bin/bash: line 8: brctl: command not found\n+ ps aux --sort=-%mem\n+ dpkg -l\n+ CONTAINERS=($(docker ps -a --format '{{ .Names }}' --filter label=zuul))\n++ docker ps -a --format '{{ .Names }}' --filter label=zuul\n+ '[' '!' -z '' ']'",
                            "stdout_lines": [
                                "+ systemd-cgls --full --all --no-pager",
                                "+ ip addr",
                                "+ ip route",
                                "+ lsblk",
                                "+ mount",
                                "+ docker images",
                                "+ brctl show",
                                "/bin/bash: line 8: brctl: command not found",
                                "+ ps aux --sort=-%mem",
                                "+ dpkg -l",
                                "+ CONTAINERS=($(docker ps -a --format '{{ .Names }}' --filter label=zuul))",
                                "++ docker ps -a --format '{{ .Names }}' --filter label=zuul",
                                "+ '[' '!' -z '' ']'"
                            ],
                            "zuul_log_id": "0242ac17-0011-b9fa-5b5e-00000000000d-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:53.535043Z",
                            "start": "2026-04-16T17:30:53.015594Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000000d",
                        "name": "Get logs for each host"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/tmp/logs/system /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                            "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/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.132:/tmp/logs/system",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance\ncd+++++++++ system/\n>f+++++++++ system/brctl-show.txt\n>f+++++++++ system/docker-images.txt\n>f+++++++++ system/ip-addr.txt\n>f+++++++++ system/ip-route.txt\n>f+++++++++ system/lsblk.txt\n>f+++++++++ system/mount.txt\n>f+++++++++ system/packages.txt\n>f+++++++++ system/ps.txt\n>f+++++++++ system/systemd-cgls.txt\n",
                            "rc": 0,
                            "stdout_lines": [
                                "created directory /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                                "cd+++++++++ system/",
                                ">f+++++++++ system/brctl-show.txt",
                                ">f+++++++++ system/docker-images.txt",
                                ">f+++++++++ system/ip-addr.txt",
                                ">f+++++++++ system/ip-route.txt",
                                ">f+++++++++ system/lsblk.txt",
                                ">f+++++++++ system/mount.txt",
                                ">f+++++++++ system/packages.txt",
                                ">f+++++++++ system/ps.txt",
                                ">f+++++++++ system/systemd-cgls.txt"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:54.170751Z",
                            "start": "2026-04-16T17:30:53.543203Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000000e",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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": 4096,
                                    "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": 4096,
                                    "state": "directory",
                                    "uid": 0
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:54.548690Z",
                            "start": "2026-04-16T17:30:54.179757Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000012",
                        "name": "creating directory for helm release status"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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.072779",
                            "end": "2026-04-16 17:30:54.840825",
                            "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-b9fa-5b5e-000000000014-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:30:54.768046",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0416 17:30:54.830133   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:54.831157   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:54.833228   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:54.833848   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:54.834936   38116 memcache.go:265] 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": [
                                "E0416 17:30:54.830133   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:54.831157   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:54.833228   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:54.833848   38116 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:54.834936   38116 memcache.go:265] 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-b9fa-5b5e-000000000014-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:55.099773Z",
                            "start": "2026-04-16T17:30:54.576597Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000014",
                        "name": "Gather get release status for helm charts"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/tmp/logs/helm /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                            "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/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.132:/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-b9fa-5b5e-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:55.576763Z",
                            "start": "2026-04-16T17:30:55.105610Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000015",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:55.817183Z",
                            "start": "2026-04-16T17:30:55.588294Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000019",
                        "name": "creating directory for cluster scoped objects"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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.222177",
                            "end": "2026-04-16 17:30:56.278091",
                            "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-b9fa-5b5e-00000000001a-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:30:56.055914",
                            "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\nE0416 17:30:56.121401   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.122456   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.123446   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.125265   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.125842   38173 memcache.go:265] 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?\nE0416 17:30:56.129226   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.129830   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.131766   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.132505   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.134359   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nE0416 17:30:56.192934   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.194064   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.194927   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.196850   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.197406   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.198035   38216 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.198814   38216 memcache.go:265] 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?\nE0416 17:30:56.201184   38216 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.202298   38216 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.203088   38216 memcache.go:265] 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\nE0416 17:30:56.265114   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.266435   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.267460   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.268129   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.270104   38246 memcache.go:265] 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",
                                "E0416 17:30:56.121401   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.122456   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.123446   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.125265   38173 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.125842   38173 memcache.go:265] 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?",
                                "E0416 17:30:56.129226   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.129830   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.131766   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.132505   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.134359   38169 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "The connection to the server localhost:8080 was refused - did you specify the right host or port?",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "E0416 17:30:56.192934   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.194064   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.194927   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.196850   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.197406   38209 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.198035   38216 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.198814   38216 memcache.go:265] 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?",
                                "E0416 17:30:56.201184   38216 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.202298   38216 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.203088   38216 memcache.go:265] 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",
                                "E0416 17:30:56.265114   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.266435   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.267460   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.268129   38246 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.270104   38246 memcache.go:265] 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-b9fa-5b5e-00000000001a-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:56.392232Z",
                            "start": "2026-04-16T17:30:55.870842Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000001a",
                        "name": "Gathering descriptions for cluster scoped objects"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:56.606149Z",
                            "start": "2026-04-16T17:30:56.397229Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000001b",
                        "name": "creating directory for namespace scoped objects"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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.072718",
                            "end": "2026-04-16 17:30:56.890997",
                            "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-b9fa-5b5e-00000000001c-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:30:56.818279",
                            "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\nE0416 17:30:56.878923   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.880083   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.881000   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.882949   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:56.883565   38285 memcache.go:265] 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",
                                "E0416 17:30:56.878923   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.880083   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.881000   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.882949   38285 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:56.883565   38285 memcache.go:265] 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-b9fa-5b5e-00000000001c-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:57.147720Z",
                            "start": "2026-04-16T17:30:56.629755Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000001c",
                        "name": "Gathering descriptions for namespace scoped objects"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/tmp/logs/objects /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                            "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/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.132:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/namespaced/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ objects/",
                                "cd+++++++++ objects/cluster/",
                                "cd+++++++++ objects/namespaced/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:57.625184Z",
                            "start": "2026-04-16T17:30:57.152895Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000001d",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:57.845198Z",
                            "start": "2026-04-16T17:30:57.635195Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000021",
                        "name": "creating directory for pod logs"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:58.058824Z",
                            "start": "2026-04-16T17:30:57.851634Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000022",
                        "name": "creating directory for failed pod logs"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "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.077284",
                            "end": "2026-04-16 17:30:58.345417",
                            "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-b9fa-5b5e-000000000023-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:30:58.268133",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0416 17:30:58.331191   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:58.332071   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:58.336178   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:58.337146   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:58.338931   38345 memcache.go:265] 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": [
                                "E0416 17:30:58.331191   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:58.332071   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:58.336178   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:58.337146   38345 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:58.338931   38345 memcache.go:265] 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-b9fa-5b5e-000000000023-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:58.600686Z",
                            "start": "2026-04-16T17:30:58.081473Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000023",
                        "name": "retrieve all kubernetes logs, current and previous (if they exist)"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/tmp/logs/pod-logs /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                            "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/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.132:/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-b9fa-5b5e-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:59.076745Z",
                            "start": "2026-04-16T17:30:58.606504Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000024",
                        "name": "Downloads pod logs to executor"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/prometheus",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/prometheus",
                                    "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/prometheus",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/prometheus",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:59.283491Z",
                            "start": "2026-04-16T17:30:59.086367Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000028",
                        "name": "creating directory for helm release descriptions"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nNAMESPACES=$(kubectl get namespaces -o json | jq -r '.items[].metadata.name')\nfor NS in $NAMESPACES; do\n  SERVICES=$(kubectl get svc -n $NS -o json | jq -r '.items[] | select(.spec.ports[].name==\"metrics\") | .metadata.name')\n  for SVC in $SERVICES; do\n    PORT=$(kubectl get svc $SVC -n $NS -o json | jq -r '.spec.ports[] | select(.name==\"metrics\") | .port')\n    echo \"Scraping $SVC.$NS:$PORT/metrics:\"\n    curl \"$SVC.$NS:$PORT/metrics\" >> \"/tmp/logs\"/prometheus/$NS-$SVC.txt || true\n  done\ndone",
                            "delta": "0:00:00.082612",
                            "end": "2026-04-16 17:30:59.580184",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nNAMESPACES=$(kubectl get namespaces -o json | jq -r '.items[].metadata.name')\nfor NS in $NAMESPACES; do\n  SERVICES=$(kubectl get svc -n $NS -o json | jq -r '.items[] | select(.spec.ports[].name==\"metrics\") | .metadata.name')\n  for SVC in $SERVICES; do\n    PORT=$(kubectl get svc $SVC -n $NS -o json | jq -r '.spec.ports[] | select(.name==\"metrics\") | .port')\n    echo \"Scraping $SVC.$NS:$PORT/metrics:\"\n    curl \"$SVC.$NS:$PORT/metrics\" >> \"/tmp/logs\"/prometheus/$NS-$SVC.txt || true\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-b9fa-5b5e-000000000029-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:30:59.497572",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0416 17:30:59.568236   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:59.569411   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:59.570323   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:59.572421   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:30:59.573392   38395 memcache.go:265] 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": [
                                "E0416 17:30:59.568236   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:59.569411   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:59.570323   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:59.572421   38395 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:30:59.573392   38395 memcache.go:265] 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-b9fa-5b5e-000000000029-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:30:59.825438Z",
                            "start": "2026-04-16T17:30:59.308526Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000029",
                        "name": "Get metrics from exporter services in all namespaces"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nmgr_endpoints=$(kubectl get endpoints -n ceph -l component=manager -o json | jq -r '.items[].subsets[].addresses[].ip')\necho \"ceph-mgr endpoints: $mgr_endpoints\"\nfor endpoint in $mgr_endpoints; do\n  echo \"checking ceph-mgr at $endpoint\"\n  metrics_curl=\"curl $endpoint:9283/metrics\"\n  op=$(eval \"$metrics_curl\")\n  if [[ -n $op ]]; then\n    curl $endpoint:9283/metrics >> \"/tmp/logs\"/prometheus/ceph-ceph-mgr.txt\n    break\n  else\n    echo \"$endpoint is a standby ceph-mgr. Trying next endpoint\"\n  fi\ndone",
                            "delta": "0:00:00.074281",
                            "end": "2026-04-16 17:31:00.117227",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nmgr_endpoints=$(kubectl get endpoints -n ceph -l component=manager -o json | jq -r '.items[].subsets[].addresses[].ip')\necho \"ceph-mgr endpoints: $mgr_endpoints\"\nfor endpoint in $mgr_endpoints; do\n  echo \"checking ceph-mgr at $endpoint\"\n  metrics_curl=\"curl $endpoint:9283/metrics\"\n  op=$(eval \"$metrics_curl\")\n  if [[ -n $op ]]; then\n    curl $endpoint:9283/metrics >> \"/tmp/logs\"/prometheus/ceph-ceph-mgr.txt\n    break\n  else\n    echo \"$endpoint is a standby ceph-mgr. Trying next endpoint\"\n  fi\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-b9fa-5b5e-00000000002a-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:31:00.042946",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0416 17:31:00.104423   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.105166   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.107115   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.108231   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.108895   38422 memcache.go:265] 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?\nceph-mgr endpoints: ",
                            "stdout_lines": [
                                "E0416 17:31:00.104423   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.105166   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.107115   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.108231   38422 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.108895   38422 memcache.go:265] 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?",
                                "ceph-mgr endpoints: "
                            ],
                            "zuul_log_id": "0242ac17-0011-b9fa-5b5e-00000000002a-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:00.370819Z",
                            "start": "2026-04-16T17:30:59.850103Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000002a",
                        "name": "Get ceph metrics from ceph-mgr"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nNAMESPACE=\"osh-infra\"\nAPP_LABEL=\"fluentd\"\nPODS=$(kubectl get pods -n $NAMESPACE -l application=$APP_LABEL -o json | jq -r '.items[].metadata.name')\nfor POD in $PODS; do\n  IP=$(kubectl get pod -n $NAMESPACE $POD -o json | jq -r '.status.podIP')\n  PORT=$(kubectl get pod -n $NAMESPACE $POD -o json |  jq -r '.spec.containers[0].ports[] | select(.name==\"metrics\") | .containerPort')\n  echo \"Scraping $POD at $IP:$PORT/metrics\"\n  curl \"$IP:$PORT/metrics\" >> \"/tmp/logs\"/prometheus/$POD.txt || true\ndone",
                            "delta": "0:00:00.069296",
                            "end": "2026-04-16 17:31:00.645659",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nNAMESPACE=\"osh-infra\"\nAPP_LABEL=\"fluentd\"\nPODS=$(kubectl get pods -n $NAMESPACE -l application=$APP_LABEL -o json | jq -r '.items[].metadata.name')\nfor POD in $PODS; do\n  IP=$(kubectl get pod -n $NAMESPACE $POD -o json | jq -r '.status.podIP')\n  PORT=$(kubectl get pod -n $NAMESPACE $POD -o json |  jq -r '.spec.containers[0].ports[] | select(.name==\"metrics\") | .containerPort')\n  echo \"Scraping $POD at $IP:$PORT/metrics\"\n  curl \"$IP:$PORT/metrics\" >> \"/tmp/logs\"/prometheus/$POD.txt || true\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-b9fa-5b5e-00000000002b-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-16 17:31:00.576363",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "E0416 17:31:00.633479   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.633970   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.635872   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.636420   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused\nE0416 17:31:00.638125   38449 memcache.go:265] 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": [
                                "E0416 17:31:00.633479   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.633970   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.635872   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.636420   38449 memcache.go:265] couldn't get current server API group list: Get \"http://localhost:8080/api?timeout=32s\": dial tcp [::1]:8080: connect: connection refused",
                                "E0416 17:31:00.638125   38449 memcache.go:265] 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-b9fa-5b5e-00000000002b-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:00.915565Z",
                            "start": "2026-04-16T17:31:00.395628Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000002b",
                        "name": "Get metrics from fluentd pods"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/tmp/logs/prometheus /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                            "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/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.132:/tmp/logs/prometheus",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ prometheus/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ prometheus/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:01.402525Z",
                            "start": "2026-04-16T17:31:00.921128Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-00000000002c",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/logs/selenium",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/tmp/logs/selenium",
                                    "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/selenium",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/tmp/logs/selenium",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:01.666572Z",
                            "start": "2026-04-16T17:31:01.411501Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000030",
                        "name": "creating directory for helm release descriptions"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -x\ncp /tmp/artifacts/* /tmp/logs/selenium/.",
                            "delta": "0:00:00.005400",
                            "end": "2026-04-16 17:31:01.871028",
                            "failed": true,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -x\ncp /tmp/artifacts/* /tmp/logs/selenium/.",
                                    "_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-b9fa-5b5e-000000000031-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-04-16 17:31:01.865628",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "+ cp '/tmp/artifacts/*' /tmp/logs/selenium/.\ncp: cannot stat '/tmp/artifacts/*': No such file or directory",
                            "stdout_lines": [
                                "+ cp '/tmp/artifacts/*' /tmp/logs/selenium/.",
                                "cp: cannot stat '/tmp/artifacts/*': No such file or directory"
                            ],
                            "zuul_log_id": "0242ac17-0011-b9fa-5b5e-000000000031-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:02.217154Z",
                            "start": "2026-04-16T17:31:01.689403Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000031",
                        "name": "Get selenium data"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/tmp/logs/selenium /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                            "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/86f11c139d9342c59c6219f08e70739e/work/logs/instance",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": null,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "pull",
                                    "owner": null,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": null,
                                    "rsync_opts": [],
                                    "rsync_path": "sudo -u root rsync",
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "zuul@199.204.45.132:/tmp/logs/selenium",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ selenium/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ selenium/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-b9fa-5b5e-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:02.693547Z",
                            "start": "2026-04-16T17:31:02.222373Z"
                        },
                        "id": "0242ac17-0011-b9fa-5b5e-000000000032",
                        "name": "Downloads logs to executor"
                    }
                }
            ]
        }
    ],
    "stats": {
        "instance": {
            "changed": 23,
            "failures": 0,
            "ignored": 1,
            "ok": 23,
            "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-16T17:31:06.518039Z",
                    "start": "2026-04-16T17:31:03.438220Z"
                },
                "id": "0242ac17-0011-fdb5-dd65-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-fdb5-dd65-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:03.495892Z",
                            "start": "2026-04-16T17:31:03.449508Z"
                        },
                        "id": "0242ac17-0011-fdb5-dd65-000000000008",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-fdb5-dd65-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:03.552195Z",
                            "start": "2026-04-16T17:31:03.506758Z"
                        },
                        "id": "0242ac17-0011-fdb5-dd65-000000000009",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-fdb5-dd65-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:04.357165Z",
                            "start": "2026-04-16T17:31:03.556712Z"
                        },
                        "id": "0242ac17-0011-fdb5-dd65-00000000000a",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.132:/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/86f11c139d9342c59c6219f08e70739e/work/logs",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.132:/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/86f11c139d9342c59c6219f08e70739e/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.204.45.132:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.204.45.132:/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/86f11c139d9342c59c6219f08e70739e/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-fdb5-dd65-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:05.852730Z",
                            "start": "2026-04-16T17:31:04.366563Z"
                        },
                        "id": "0242ac17-0011-fdb5-dd65-00000000000c",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/artifacts/* /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.007812",
                                    "end": "2026-04-16 17:31:06.250605",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/artifacts/* /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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-16 17:31:06.242793",
                                    "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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/docs/* /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.006942",
                                    "end": "2026-04-16 17:31:06.475196",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/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/86f11c139d9342c59c6219f08e70739e/work/docs/* /var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/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-16 17:31:06.468254",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-fdb5-dd65-00000000000f",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:06.518039Z",
                            "start": "2026-04-16T17:31:05.867695Z"
                        },
                        "id": "0242ac17-0011-fdb5-dd65-000000000011",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-04-16T17:31:06.948490Z",
                    "start": "2026-04-16T17:31:06.529795Z"
                },
                "id": "0242ac17-0011-fdb5-dd65-000000000013",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCzD3Vgx/rksrI1huNyEis4+32MbiBRkgNLnCZ3Uprb1ht3MGr3s2FdoZwlM23Jp32Nf87JhCF6Ze/J9ja8GG3OuHrEqc6pjoAyGPtBsoVhEHaF1C1KfNWtusDuSvkbBW3rF5vuGd6mF5adMspX9Chap65goprjeKE8WDP2nyp7U1O9mhX+D2a+DanX44/+tToAUBgwdfzjfXxnDq3PLuSK0eGX69UhkBMSfECAqITkD+vQLa+VfcPzNpARSaEF7JgGIFvLum8b8mZBeMqkvpr/Rsvg4i31e/xesaScRED3vgIf5dTGAUOtlLk35jCTjnAlEXKG63cZeLANvqKTXpQqlQwpO15B1SeiZ8h+yGSLzoooRSNa0/F1kCoXaZEVUFMJpqriyyw4PLq2jzn2RQMOHu/O6g0OGtOsBMaDCYt6L37S5gJqSKrH5Gn6A3pK+E3YRhd3oclt9aalMek0DJvJj4fsB0grq+3pg7ZaeUawUE9wKPP+PchmCfaLrRfGSmc= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCzD3Vgx/rksrI1huNyEis4+32MbiBRkgNLnCZ3Uprb1ht3MGr3s2FdoZwlM23Jp32Nf87JhCF6Ze/J9ja8GG3OuHrEqc6pjoAyGPtBsoVhEHaF1C1KfNWtusDuSvkbBW3rF5vuGd6mF5adMspX9Chap65goprjeKE8WDP2nyp7U1O9mhX+D2a+DanX44/+tToAUBgwdfzjfXxnDq3PLuSK0eGX69UhkBMSfECAqITkD+vQLa+VfcPzNpARSaEF7JgGIFvLum8b8mZBeMqkvpr/Rsvg4i31e/xesaScRED3vgIf5dTGAUOtlLk35jCTjnAlEXKG63cZeLANvqKTXpQqlQwpO15B1SeiZ8h+yGSLzoooRSNa0/F1kCoXaZEVUFMJpqriyyw4PLq2jzn2RQMOHu/O6g0OGtOsBMaDCYt6L37S5gJqSKrH5Gn6A3pK+E3YRhd3oclt9aalMek0DJvJj4fsB0grq+3pg7ZaeUawUE9wKPP+PchmCfaLrRfGSmc= 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-fdb5-dd65-000000000016",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/86f11c139d9342c59c6219f08e70739e/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-16T17:31:06.948490Z",
                            "start": "2026-04-16T17:31:06.536877Z"
                        },
                        "id": "0242ac17-0011-fdb5-dd65-000000000018",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "instance": {
            "changed": 4,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
