[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-05-19T16:26:26.958102Z",
                    "start": "2026-05-19T16:26:23.165997Z"
                },
                "id": "0242ac17-0010-ce6d-bd05-000000000002",
                "name": "localhost"
            },
            "tasks": [
                {
                    "hosts": {
                        "localhost": {
                            "action": "gather_facts",
                            "ansible_facts": {
                                "ansible_apparmor": {
                                    "status": "disabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "NA",
                                "ansible_bios_vendor": "NA",
                                "ansible_bios_version": "NA",
                                "ansible_board_asset_tag": "NA",
                                "ansible_board_name": "NA",
                                "ansible_board_serial": "NA",
                                "ansible_board_vendor": "NA",
                                "ansible_board_version": "NA",
                                "ansible_chassis_asset_tag": "NA",
                                "ansible_chassis_serial": "NA",
                                "ansible_chassis_vendor": "NA",
                                "ansible_chassis_version": "NA",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": "ttyS0",
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_date_time": {
                                    "date": "2026-05-19",
                                    "day": "19",
                                    "epoch": "1779207983",
                                    "epoch_int": "1779207983",
                                    "hour": "16",
                                    "iso8601": "2026-05-19T16:26:23Z",
                                    "iso8601_basic": "20260519T162623782610",
                                    "iso8601_basic_short": "20260519T162623",
                                    "iso8601_micro": "2026-05-19T16:26:23.782610Z",
                                    "minute": "26",
                                    "month": "05",
                                    "second": "23",
                                    "time": "16:26:23",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Tuesday",
                                    "weekday_number": "2",
                                    "weeknumber": "20",
                                    "year": "2026"
                                },
                                "ansible_devices": {},
                                "ansible_distribution": "Debian",
                                "ansible_distribution_major_version": "12",
                                "ansible_distribution_release": "bookworm",
                                "ansible_distribution_version": "12",
                                "ansible_dns": {
                                    "nameservers": [
                                        "127.0.0.11"
                                    ],
                                    "options": {
                                        "edns0": true,
                                        "ndots": "0",
                                        "trust-ad": true
                                    },
                                    "search": [
                                        "openstacklocal"
                                    ]
                                },
                                "ansible_domain": "",
                                "ansible_effective_group_id": 0,
                                "ansible_effective_user_id": 0,
                                "ansible_env": {
                                    "ANSIBLE_CONFIG": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work",
                                    "HOSTNAME": "2d72f0692154",
                                    "KUBECONFIG": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/kube/config",
                                    "LANG": "C.UTF-8",
                                    "PATH": "/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                    "PWD": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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": "902247",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-4FQpUTrU3AzN/agent.902246",
                                    "TMP": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/ansible/logging.json",
                                    "ZUUL_OUTPUT_MAX_BYTES": "1073741824"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "NA",
                                "ansible_fqdn": "2d72f0692154",
                                "ansible_hostname": "2d72f0692154",
                                "ansible_hostnqn": "",
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "5.15.0-130-generic",
                                "ansible_kernel_version": "#140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024",
                                "ansible_loadavg": {
                                    "15m": 5.19384765625,
                                    "1m": 5.26513671875,
                                    "5m": 5.4697265625
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 2803,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 16934,
                                        "used": 15156
                                    },
                                    "real": {
                                        "free": 2803,
                                        "total": 32090,
                                        "used": 29287
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/kube",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 145058301,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 118882416,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 48331016,
                                        "inode_total": 67108864,
                                        "inode_used": 18777848,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 594158800896,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 8004448,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32597132,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16365952,
                                        "inode_total": 20643840,
                                        "inode_used": 4277888,
                                        "mount": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 32786219008,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    }
                                ],
                                "ansible_nodename": "2d72f0692154",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": [
                                        "tty1",
                                        "ttyS0"
                                    ],
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_processor": [
                                    "0",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "1",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "2",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "3",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "4",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "5",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "6",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "7",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "8",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "9",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "10",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "11",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "12",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "13",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "14",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "15",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 16,
                                "ansible_processor_nproc": 16,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 16,
                                "ansible_product_name": "NA",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "NA",
                                "ansible_python": {
                                    "executable": "/usr/local/lib/zuul/ansible/9/bin/python",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 14,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        14,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.14",
                                "ansible_real_group_id": 0,
                                "ansible_real_user_id": 0,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "bwrap",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": "N/A",
                                "ansible_system_capabilities_enforced": "N/A",
                                "ansible_system_vendor": "NA",
                                "ansible_uptime_seconds": 42871713,
                                "ansible_user_dir": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work",
                                "ansible_user_gecos": "root",
                                "ansible_user_gid": 0,
                                "ansible_user_id": "root",
                                "ansible_user_shell": "/bin/bash",
                                "ansible_user_uid": 0,
                                "ansible_userspace_architecture": "x86_64",
                                "ansible_userspace_bits": "64",
                                "ansible_virtualization_role": "host",
                                "ansible_virtualization_tech_guest": [],
                                "ansible_virtualization_tech_host": [
                                    "kvm"
                                ],
                                "ansible_virtualization_type": "kvm",
                                "gather_subset": [
                                    "all"
                                ],
                                "module_setup": true
                            },
                            "changed": false,
                            "deprecations": [],
                            "warnings": []
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:25.149522Z",
                            "start": "2026-05-19T16:26:23.175963Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-00000000002a",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:25.175601Z",
                            "start": "2026-05-19T16:26:25.154173Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-000000000008",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "e60/oss/e60d8b2f8b684cdb8d8c60732f16abe3"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000054",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:25.222060Z",
                            "start": "2026-05-19T16:26:25.191159Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-000000000056",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.18\nJob: atmosphere-molecule-aio-ovn\nPipeline: check\nExecutor: 2d72f0692154\nTriggered by: https://github.com/vexxhost/atmosphere/pull/3945\nEvent ID: 51f4f6f0-539f-11f1-8a99-36bd1f5a2c5f\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:25.269645Z",
                            "start": "2026-05-19T16:26:25.230259Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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: np0000174888\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.138\n",
                                    "zj_item": "instance"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:25.370080Z",
                            "start": "2026-05-19T16:26:25.273649Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-00000000000a",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:25.780622Z",
                            "start": "2026-05-19T16:26:25.379714Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-00000000000f",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "a82a5e2e6ef2761f16a46a553b982e981e2f5cff",
                            "dest": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a82a5e2e6ef2761f16a46a553b982e981e2f5cff",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/.ansible/tmp/ansible-tmp-1779207985.8130152-84-15522796585968/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "3e3aee513cf46ac58c4cbb80fb4b5d4e",
                            "mode": "0644",
                            "owner": "root",
                            "size": 30177,
                            "src": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/.ansible/tmp/ansible-tmp-1779207985.8130152-84-15522796585968/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:26.958102Z",
                            "start": "2026-05-19T16:26:25.786004Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-000000000010",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-05-19T16:26:35.413724Z",
                    "start": "2026-05-19T16:26:26.963648Z"
                },
                "id": "0242ac17-0010-ce6d-bd05-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/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:27.188395Z",
                            "start": "2026-05-19T16:26:26.971921Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:27.232347Z",
                            "start": "2026-05-19T16:26:27.196783Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:01.064784",
                            "end": "2026-05-19 16:26:28.693538",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa -b 3072",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-ce6d-bd05-00000000009c-0-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:26:27.628754",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa.pub\nThe key fingerprint is:\nSHA256:elvl2genr+CtDe9AF0Dlmr4m8B+ll7t7kJ+i4xRtjXg zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|         .o..    |\n|           o     |\n|            o    |\n|           = +   |\n|        S * E..  |\n|      .. o X+..  |\n|      .o. X +* . |\n|       .o=o&o.=  |\n|        .=O=@O.  |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:elvl2genr+CtDe9AF0Dlmr4m8B+ll7t7kJ+i4xRtjXg zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|         .o..    |",
                                "|           o     |",
                                "|            o    |",
                                "|           = +   |",
                                "|        S * E..  |",
                                "|      .. o X+..  |",
                                "|      .o. X +* . |",
                                "|       .o=o&o.=  |",
                                "|        .=O=@O.  |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0010-ce6d-bd05-00000000009c-0-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:28.734960Z",
                            "start": "2026-05-19T16:26:27.253470Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-00000000009c",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:28.766805Z",
                            "start": "2026-05-19T16:26:28.742703Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:28.810667Z",
                            "start": "2026-05-19T16:26:28.787258Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC2cquDzRpCq/FGPfjjdRWFKeUOcLnyuAp6MOtQi8ehY38/2OnUsAM+6WaZrygazFUN9/d1U6ATVqWa/aCIG6960n+oLubmsnVP1opEl5/LiyPzKUU03MgIZj8mQyk2v6Ust26+wDOCIX5uJZvZ6u4GJ/t8vRXxPHmyNIHP8fXkorwUxz4UyV+mEGH0W/sygGXfi6v7Egh4g/88AGU2nVBVRrhFIm0XZw4qF4+FS79oU33OJiCn0ZnyWHBPhqQlWMn18pDoQU8NMzp3Dh3J3KmwEz2+5S80clKic5kBQj2CWnGsbbtlZ/ttxab6b4BV0YVsPPouBbm6JCyVZiI5MHe1lxU9OPG0wizmrio3n2UV2AFP/09Lb10VVmAnHIu/Ni+xEjqDC40Mux7VkIaW47nkf7kkEQHwMRX6qgJ+evXDzfIHzN73Twkr5eICgOCE59fCt+zdguihA7398IyZeCBEH2mbCJyfYouFrJfJ2At/L6s0w773OwkSRPk+QLjr3ks= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC2cquDzRpCq/FGPfjjdRWFKeUOcLnyuAp6MOtQi8ehY38/2OnUsAM+6WaZrygazFUN9/d1U6ATVqWa/aCIG6960n+oLubmsnVP1opEl5/LiyPzKUU03MgIZj8mQyk2v6Ust26+wDOCIX5uJZvZ6u4GJ/t8vRXxPHmyNIHP8fXkorwUxz4UyV+mEGH0W/sygGXfi6v7Egh4g/88AGU2nVBVRrhFIm0XZw4qF4+FS79oU33OJiCn0ZnyWHBPhqQlWMn18pDoQU8NMzp3Dh3J3KmwEz2+5S80clKic5kBQj2CWnGsbbtlZ/ttxab6b4BV0YVsPPouBbm6JCyVZiI5MHe1lxU9OPG0wizmrio3n2UV2AFP/09Lb10VVmAnHIu/Ni+xEjqDC40Mux7VkIaW47nkf7kkEQHwMRX6qgJ+evXDzfIHzN73Twkr5eICgOCE59fCt+zdguihA7398IyZeCBEH2mbCJyfYouFrJfJ2At/L6s0w773OwkSRPk+QLjr3ks= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:29.455729Z",
                            "start": "2026-05-19T16:26:28.816777Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:29.661050Z",
                            "start": "2026-05-19T16:26:29.462169Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-0000000000be",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "04d6952acd7ac59b14ba42447c71b6e35da4b2eb",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "04d6952acd7ac59b14ba42447c71b6e35da4b2eb",
                                    "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-1779207989.760094-190-6052429909450/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "870b0d3aa3571a81d49de4ac7abd29fa",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1779207989.760094-190-6052429909450/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:30.223091Z",
                            "start": "2026-05-19T16:26:29.718023Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-0000000000bf",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "1696dec7b30b38a634afba8342a65d0689918e6e",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "1696dec7b30b38a634afba8342a65d0689918e6e",
                                    "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-1779207990.2725976-200-37057441895560/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "38a527ec216e217581ec3d57037e829d",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1779207990.2725976-200-37057441895560/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:30.711196Z",
                            "start": "2026-05-19T16:26:30.230409Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:30.742867Z",
                            "start": "2026-05-19T16:26:30.717598Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-0000000000a3",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:31.094182Z",
                            "start": "2026-05-19T16:26:30.754603Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-0000000000a5",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa"
                            ],
                            "delta": "0:00:00.016085",
                            "end": "2026-05-19 16:26:31.390982",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-ce6d-bd05-0000000000ab-0-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:26:31.374897",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/e60d8b2f8b684cdb8d8c60732f16abe3_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0010-ce6d-bd05-0000000000ab-0-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:31.436383Z",
                            "start": "2026-05-19T16:26:31.108593Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-0000000000ab",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:31.730663Z",
                            "start": "2026-05-19T16:26:31.444130Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:31.770619Z",
                            "start": "2026-05-19T16:26:31.736638Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:32.074256Z",
                            "start": "2026-05-19T16:26:31.788767Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:34.386491Z",
                            "start": "2026-05-19T16:26:32.083451Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:34.898065Z",
                            "start": "2026-05-19T16:26:34.397242Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-0010-ce6d-bd05-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:35.413724Z",
                            "start": "2026-05-19T16:26:34.907104Z"
                        },
                        "id": "0242ac17-0010-ce6d-bd05-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-05-19T16:26:44.299210Z",
                    "start": "2026-05-19T16:26:36.210756Z"
                },
                "id": "0242ac17-0010-16d9-548b-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-1779207996.2614417-5-275472636682988/uv-x86_64-unknown-linux-gnuchja6sbg.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-1779207996.2614417-5-275472636682988/uv-x86_64-unknown-linux-gnuchja6sbg.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-16d9-548b-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:39.617363Z",
                            "start": "2026-05-19T16:26:36.222612Z"
                        },
                        "id": "0242ac17-0010-16d9-548b-000000000007",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.011470",
                            "end": "2026-05-19 16:26:39.981241",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-16d9-548b-000000000008-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:26:39.969771",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0010-16d9-548b-000000000008-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-16d9-548b-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:40.167693Z",
                            "start": "2026-05-19T16:26:39.652992Z"
                        },
                        "id": "0242ac17-0010-16d9-548b-000000000008",
                        "name": "Print version"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "molecule_install_galaxy_sibling_collections",
                            "changed": true,
                            "checkouts": [
                                {
                                    "changed": true,
                                    "name": "vexxhost.ceph",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-ceph",
                                    "tag": "v3.2.0"
                                },
                                {
                                    "changed": true,
                                    "name": "atmosphere.common",
                                    "path": "/home/zuul/src/github.com/vexxhost/atmosphere.common",
                                    "tag": "v0.6.0"
                                },
                                {
                                    "changed": true,
                                    "name": "vexxhost.kubernetes",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "tag": "v2.5.0"
                                },
                                {
                                    "changed": true,
                                    "name": "vexxhost.containers",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-containers",
                                    "tag": "v1.1.1"
                                },
                                {
                                    "changed": true,
                                    "name": "vexxhost.containers",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-containers",
                                    "tag": "v1.6.0"
                                }
                            ],
                            "installed": [
                                {
                                    "in_build_refs": false,
                                    "name": "atmosphere.common",
                                    "path": "/home/zuul/src/github.com/vexxhost/atmosphere.common",
                                    "spec": ">=0.6.0"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "vexxhost.ceph",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-ceph",
                                    "spec": ">=3.2.0"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "vexxhost.containers",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-containers",
                                    "spec": ">=1.6.0"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "vexxhost.kubernetes",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "spec": ">=2.5.0"
                                }
                            ],
                            "invocation": {
                                "module_args": {
                                    "build_refs": [
                                        {
                                            "branch": "main",
                                            "change": "3945",
                                            "change_message": "fix(ci): use zuul checkouts for molecule collections\n\n## Summary\n- add the Galaxy collection repositories as required projects for Molecule jobs\n- rely on the shared Molecule sibling-collection installer from `vexxhost/zuul-jobs`\n\nDepends-On: https://github.com/vexxhost/zuul-jobs/pull/2\n\n## Validation\n- `git diff --check`\n- shared `vexxhost/zuul-jobs` module validated with Python compile, Ansible syntax check, and a disposable Ansible fixture\n",
                                            "change_url": "https://github.com/vexxhost/atmosphere/pull/3945",
                                            "commit_id": "c728aee5ac5200300cef5f3406a4b9590a65f19d",
                                            "patchset": "c728aee5ac5200300cef5f3406a4b9590a65f19d",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/atmosphere",
                                                "name": "vexxhost/atmosphere",
                                                "short_name": "atmosphere",
                                                "src_dir": "src/github.com/vexxhost/atmosphere"
                                            },
                                            "src_dir": "src/github.com/vexxhost/atmosphere",
                                            "topic": null
                                        },
                                        {
                                            "branch": "main",
                                            "change": "2",
                                            "change_message": "feat(molecule): install galaxy sibling collections\n\n## Summary\n- add a Molecule pre-playbook Ansible module that installs checked-out Galaxy sibling collections\n- check required collection projects out to dependency tags unless they are in the current buildset\n- expose `molecule_install_collection_siblings` as the default-on job switch\n\n## Validation\n- `python3 -m py_compile playbooks/molecule/library/molecule_install_galaxy_sibling_collections.py`\n- `nix-shell -p ansible --run 'ANSIBLE_ROLES_PATH=roles ansible-playbook -i localhost, --syntax-check playbooks/molecule/pre.yaml'`\n- disposable Ansible fixture covering direct dependencies, transitive dependencies, higher minimum version selection, buildset checkout preservation, and local `ansible-galaxy` install invocation\n",
                                            "change_url": "https://github.com/vexxhost/zuul-jobs/pull/2",
                                            "commit_id": "a96801d5d36ecf8a5f63c3e8d8e76555d25647ec",
                                            "patchset": "a96801d5d36ecf8a5f63c3e8d8e76555d25647ec",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/zuul-jobs",
                                                "name": "vexxhost/zuul-jobs",
                                                "short_name": "zuul-jobs",
                                                "src_dir": "src/github.com/vexxhost/zuul-jobs"
                                            },
                                            "topic": null
                                        },
                                        {
                                            "branch": "main",
                                            "change": "3945",
                                            "change_message": "fix(ci): use zuul checkouts for molecule collections\n\n## Summary\n- add the Galaxy collection repositories as required projects for Molecule jobs\n- rely on the shared Molecule sibling-collection installer from `vexxhost/zuul-jobs`\n\nDepends-On: https://github.com/vexxhost/zuul-jobs/pull/2\n\n## Validation\n- `git diff --check`\n- shared `vexxhost/zuul-jobs` module validated with Python compile, Ansible syntax check, and a disposable Ansible fixture\n",
                                            "change_url": "https://github.com/vexxhost/atmosphere/pull/3945",
                                            "commit_id": "c728aee5ac5200300cef5f3406a4b9590a65f19d",
                                            "patchset": "c728aee5ac5200300cef5f3406a4b9590a65f19d",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/atmosphere",
                                                "name": "vexxhost/atmosphere",
                                                "short_name": "atmosphere",
                                                "src_dir": "src/github.com/vexxhost/atmosphere"
                                            },
                                            "topic": null
                                        }
                                    ],
                                    "collections_path": "/home/zuul/.ansible/collections",
                                    "executable": "uv",
                                    "project_dir": "src/github.com/vexxhost/atmosphere",
                                    "projects": [
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/ansible-collection-ceph",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "fff9fea9ad90f3da7310a3a7f1b9f173888d7356",
                                            "name": "vexxhost/ansible-collection-ceph",
                                            "required": true,
                                            "short_name": "ansible-collection-ceph",
                                            "src_dir": "src/github.com/vexxhost/ansible-collection-ceph"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/ansible-collection-containers",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "81e3fb55671a8a2c167c263761c5c139bc8421bc",
                                            "name": "vexxhost/ansible-collection-containers",
                                            "required": true,
                                            "short_name": "ansible-collection-containers",
                                            "src_dir": "src/github.com/vexxhost/ansible-collection-containers"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/ansible-collection-kubernetes",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "9e778e36eee2b628f7d316634d7bc6f722c101b9",
                                            "name": "vexxhost/ansible-collection-kubernetes",
                                            "required": true,
                                            "short_name": "ansible-collection-kubernetes",
                                            "src_dir": "src/github.com/vexxhost/ansible-collection-kubernetes"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/atmosphere",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "c4e0e242e6df0498c29742156adf538fcf3885d5",
                                            "name": "vexxhost/atmosphere",
                                            "required": false,
                                            "short_name": "atmosphere",
                                            "src_dir": "src/github.com/vexxhost/atmosphere"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/atmosphere.common",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "b64e01cde1aaea79198f3ca2385e27c224b2c7a3",
                                            "name": "vexxhost/atmosphere.common",
                                            "required": true,
                                            "short_name": "atmosphere.common",
                                            "src_dir": "src/github.com/vexxhost/atmosphere.common"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/zuul-jobs",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "a96801d5d36ecf8a5f63c3e8d8e76555d25647ec",
                                            "name": "vexxhost/zuul-jobs",
                                            "required": false,
                                            "short_name": "zuul-jobs",
                                            "src_dir": "src/github.com/vexxhost/zuul-jobs"
                                        }
                                    ],
                                    "workspace_dir": "/home/zuul"
                                }
                            },
                            "log": [
                                "Sibling collection vexxhost.ceph at /home/zuul/src/github.com/vexxhost/ansible-collection-ceph",
                                "Sibling collection vexxhost.containers at /home/zuul/src/github.com/vexxhost/ansible-collection-containers",
                                "Sibling collection vexxhost.kubernetes at /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes",
                                "Sibling collection atmosphere.common at /home/zuul/src/github.com/vexxhost/atmosphere.common",
                                "Skipping ansible.netcommon: no checked-out sibling",
                                "Skipping ansible.posix: no checked-out sibling",
                                "Skipping ansible.utils: no checked-out sibling",
                                "Skipping community.crypto: no checked-out sibling",
                                "Skipping community.general: no checked-out sibling",
                                "Skipping community.mysql: no checked-out sibling",
                                "Skipping kubernetes.core: no checked-out sibling",
                                "Skipping openstack.cloud: no checked-out sibling",
                                "Checked out vexxhost.ceph to v3.2.0",
                                "Checked out atmosphere.common to v0.6.0",
                                "Checked out vexxhost.kubernetes to v2.5.0",
                                "Checked out vexxhost.containers to v1.1.1",
                                "Skipping vexxhost.kubernetes: already resolved",
                                "Checked out vexxhost.containers to v1.6.0",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/atmosphere.common",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'atmosphere.common:0.6.0' to '/home/zuul/.ansible/collections/ansible_collections/atmosphere/common'",
                                "Created collection for atmosphere.common:0.6.0 at /home/zuul/.ansible/collections/ansible_collections/atmosphere/common",
                                "atmosphere.common:0.6.0 was installed successfully",
                                "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 netaddr (2.2MiB)",
                                "Downloading rjsonnet (1.2MiB)",
                                "Downloading pygments (1.2MiB)",
                                "Downloading setuptools (1.1MiB)",
                                "Downloading ansible-core (2.1MiB)",
                                "Downloading kubernetes (1.9MiB)",
                                "Downloading cryptography (4.2MiB)",
                                "Downloading pydantic-core (2.0MiB)",
                                "Downloading openstacksdk (1.7MiB)",
                                " Downloading rjsonnet",
                                "   Building pyperclip==1.9.0",
                                " 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 38ms",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/ansible-collection-ceph",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'vexxhost.ceph:3.2.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph'",
                                "Created collection for vexxhost.ceph:3.2.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph",
                                "vexxhost.ceph:3.2.0 was installed successfully",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/ansible-collection-containers",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'vexxhost.containers:1.6.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers'",
                                "Created collection for vexxhost.containers:1.6.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/containers",
                                "vexxhost.containers:1.6.0 was installed successfully",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'vexxhost.kubernetes:2.5.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes'",
                                "Created collection for vexxhost.kubernetes:2.5.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes",
                                "vexxhost.kubernetes:2.5.0 was installed successfully"
                            ],
                            "msg": "Sibling collection vexxhost.ceph at /home/zuul/src/github.com/vexxhost/ansible-collection-ceph\nSibling collection vexxhost.containers at /home/zuul/src/github.com/vexxhost/ansible-collection-containers\nSibling collection vexxhost.kubernetes at /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes\nSibling collection atmosphere.common at /home/zuul/src/github.com/vexxhost/atmosphere.common\nSkipping ansible.netcommon: no checked-out sibling\nSkipping ansible.posix: no checked-out sibling\nSkipping ansible.utils: no checked-out sibling\nSkipping community.crypto: no checked-out sibling\nSkipping community.general: no checked-out sibling\nSkipping community.mysql: no checked-out sibling\nSkipping kubernetes.core: no checked-out sibling\nSkipping openstack.cloud: no checked-out sibling\nChecked out vexxhost.ceph to v3.2.0\nChecked out atmosphere.common to v0.6.0\nChecked out vexxhost.kubernetes to v2.5.0\nChecked out vexxhost.containers to v1.1.1\nSkipping vexxhost.kubernetes: already resolved\nChecked out vexxhost.containers to v1.6.0\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/atmosphere.common\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'atmosphere.common:0.6.0' to '/home/zuul/.ansible/collections/ansible_collections/atmosphere/common'\nCreated collection for atmosphere.common:0.6.0 at /home/zuul/.ansible/collections/ansible_collections/atmosphere/common\natmosphere.common:0.6.0 was installed successfully\nUsing 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 netaddr (2.2MiB)\nDownloading rjsonnet (1.2MiB)\nDownloading pygments (1.2MiB)\nDownloading setuptools (1.1MiB)\nDownloading ansible-core (2.1MiB)\nDownloading kubernetes (1.9MiB)\nDownloading cryptography (4.2MiB)\nDownloading pydantic-core (2.0MiB)\nDownloading openstacksdk (1.7MiB)\n Downloading rjsonnet\n   Building pyperclip==1.9.0\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 38ms\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/ansible-collection-ceph\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'vexxhost.ceph:3.2.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph'\nCreated collection for vexxhost.ceph:3.2.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph\nvexxhost.ceph:3.2.0 was installed successfully\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/ansible-collection-containers\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'vexxhost.containers:1.6.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers'\nCreated collection for vexxhost.containers:1.6.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/containers\nvexxhost.containers:1.6.0 was installed successfully\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'vexxhost.kubernetes:2.5.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes'\nCreated collection for vexxhost.kubernetes:2.5.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes\nvexxhost.kubernetes:2.5.0 was installed successfully"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:44.299210Z",
                            "start": "2026-05-19T16:26:40.177896Z"
                        },
                        "id": "0242ac17-0010-16d9-548b-00000000000a",
                        "name": "Install Ansible collection siblings"
                    }
                }
            ]
        }
    ],
    "stats": {
        "instance": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 3,
            "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-05-19T16:26:58.614527Z",
                    "start": "2026-05-19T16:26:45.173171Z"
                },
                "id": "0242ac17-0010-a725-8083-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1779208013,
                            "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 1 not upgraded.\nNeed to get 359 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.2 [135 kB]\nGet:3 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates/main amd64 jq amd64 1.6-2.1ubuntu3.2 [52.5 kB]\nFetched 359 kB in 1s (512 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 ... 30924 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.2_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.6-2.1ubuntu3.2) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.6-2.1ubuntu3.2_amd64.deb ...\r\nUnpacking jq (1.6-2.1ubuntu3.2) ...\r\nSetting up libonig5:amd64 (6.9.7.1-2build1) ...\r\nSetting up libjq1:amd64 (1.6-2.1ubuntu3.2) ...\r\nSetting up jq (1.6-2.1ubuntu3.2) ...\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 1 not upgraded.",
                                "Need to get 359 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.2 [135 kB]",
                                "Get:3 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates/main amd64 jq amd64 1.6-2.1ubuntu3.2 [52.5 kB]",
                                "Fetched 359 kB in 1s (512 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 ... 30924 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.2_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.6-2.1ubuntu3.2) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.6-2.1ubuntu3.2_amd64.deb ...",
                                "Unpacking jq (1.6-2.1ubuntu3.2) ...",
                                "Setting up libonig5:amd64 (6.9.7.1-2build1) ...",
                                "Setting up libjq1:amd64 (1.6-2.1ubuntu3.2) ...",
                                "Setting up jq (1.6-2.1ubuntu3.2) ...",
                                "Processing triggers for libc-bin (2.35-0ubuntu3.13) ..."
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:26:58.614527Z",
                            "start": "2026-05-19T16:26:45.186159Z"
                        },
                        "id": "0242ac17-0010-a725-8083-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-05-19T16:35:11.962338Z",
                    "start": "2026-05-19T16:26:59.437459Z"
                },
                "id": "0242ac17-0010-455c-b683-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "instance": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "checksum": "a82a5e2e6ef2761f16a46a553b982e981e2f5cff",
                            "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": "a82a5e2e6ef2761f16a46a553b982e981e2f5cff",
                                    "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-1779208019.4834433-5-222720969070796/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "3e3aee513cf46ac58c4cbb80fb4b5d4e",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 30177,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1779208019.4834433-5-222720969070796/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:27:00.278901Z",
                            "start": "2026-05-19T16:26:59.449472Z"
                        },
                        "id": "0242ac17-0010-455c-b683-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-05-19T16:27:00.618068Z",
                            "start": "2026-05-19T16:27:00.285018Z"
                        },
                        "id": "0242ac17-0010-455c-b683-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:10.513794",
                            "end": "2026-05-19 16:35:11.464822",
                            "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-0010-455c-b683-000000000006-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 2,
                            "start": "2026-05-19 16:27:00.951028",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "WARNING  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] *********************************************************\nTuesday 19 May 2026  16:27:40 +0000 (0:00:00.028)       0:00:00.028 ***********\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] ************************************************\nTuesday 19 May 2026  16:27:42 +0000 (0:00:01.187)       0:00:01.216 ***********\nchanged: [instance]\n\nTASK [Ensure hostname inside hosts file] ***************************************\nTuesday 19 May 2026  16:27:42 +0000 (0:00:00.714)       0:00:01.930 ***********\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] **************************\nTuesday 19 May 2026  16:27:43 +0000 (0:00:00.287)       0:00:02.217 ***********\nok: [instance]\n\nTASK [Purge \"snapd\" package] ***************************************************\nTuesday 19 May 2026  16:27:44 +0000 (0:00:01.393)       0:00:03.611 ***********\nok: [instance]\n\nPLAY [Generate workspace for Atmosphere] ***************************************\n\nTASK [Create folders for workspace] ********************************************\nTuesday 19 May 2026  16:27:45 +0000 (0:00:00.866)       0:00:04.477 ***********\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] *****************\nTuesday 19 May 2026  16:27:46 +0000 (0:00:01.115)       0:00:05.593 ***********\nchanged: [localhost]\n\nTASK [Load the current Ceph control plane configuration into a variable] *******\nTuesday 19 May 2026  16:27:46 +0000 (0:00:00.209)       0:00:05.802 ***********\nok: [localhost]\n\nTASK [Generate Ceph control plane values for missing variables] ****************\nTuesday 19 May 2026  16:27:46 +0000 (0:00:00.021)       0:00:05.824 ***********\nok: [localhost] => (item={'key': 'ceph_fsid', 'value': '2f909984-6cd8-51b9-b268-75aa348d5f42'})\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] *****************\nTuesday 19 May 2026  16:27:46 +0000 (0:00:00.047)       0:00:05.872 ***********\nchanged: [localhost]\n\nPLAY [Generate Ceph OSD configuration for workspace] ***************************\n\nTASK [Ensure the Ceph OSDs configuration file exists] **************************\nTuesday 19 May 2026  16:27:47 +0000 (0:00:00.574)       0:00:06.446 ***********\nchanged: [localhost]\n\nTASK [Load the current Ceph OSDs configuration into a variable] ****************\nTuesday 19 May 2026  16:27:47 +0000 (0:00:00.191)       0:00:06.637 ***********\nok: [localhost]\n\nTASK [Generate Ceph OSDs values for missing variables] *************************\nTuesday 19 May 2026  16:27:47 +0000 (0:00:00.025)       0:00:06.662 ***********\nok: [localhost] => (item={'key': 'ceph_osd_devices', 'value': ['/dev/vdb', '/dev/vdc', '/dev/vdd']})\n\nTASK [Write new Ceph OSDs configuration file to disk] **************************\nTuesday 19 May 2026  16:27:47 +0000 (0:00:00.031)       0:00:06.693 ***********\nchanged: [localhost]\n\nPLAY [Generate Kubernetes configuration for workspace] *************************\n\nTASK [Ensure the Kubernetes configuration file exists] *************************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.399)       0:00:07.093 ***********\nchanged: [localhost]\n\nTASK [Load the current Kubernetes configuration into a variable] ***************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.174)       0:00:07.268 ***********\nok: [localhost]\n\nTASK [Generate Kubernetes values for missing variables] ************************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.026)       0:00:07.294 ***********\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] *************************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.044)       0:00:07.339 ***********\nchanged: [localhost]\n\nPLAY [Generate Keepalived configuration for workspace] *************************\n\nTASK [Ensure the Keeaplived configuration file exists] *************************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.372)       0:00:07.712 ***********\nchanged: [localhost]\n\nTASK [Load the current Keepalived configuration into a variable] ***************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.191)       0:00:07.903 ***********\nok: [localhost]\n\nTASK [Generate Keepalived values for missing variables] ************************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.023)       0:00:07.927 ***********\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] *************************\nTuesday 19 May 2026  16:27:48 +0000 (0:00:00.038)       0:00:07.966 ***********\nchanged: [localhost]\n\nPLAY [Generate endpoints for workspace] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:27:49 +0000 (0:00:00.380)       0:00:08.347 ***********\nok: [localhost]\n\nTASK [Ensure the endpoints file exists] ****************************************\nTuesday 19 May 2026  16:27:50 +0000 (0:00:00.700)       0:00:09.047 ***********\nchanged: [localhost]\n\nTASK [Load the current endpoints into a variable] ******************************\nTuesday 19 May 2026  16:27:50 +0000 (0:00:00.182)       0:00:09.230 ***********\nok: [localhost]\n\nTASK [Generate endpoint skeleton for missing variables] ************************\nTuesday 19 May 2026  16:27:50 +0000 (0:00:00.024)       0:00:09.254 ***********\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] ****************************************\nTuesday 19 May 2026  16:27:51 +0000 (0:00:00.817)       0:00:10.072 ***********\nchanged: [localhost]\n\nTASK [Ensure the endpoints file exists] ****************************************\nTuesday 19 May 2026  16:27:51 +0000 (0:00:00.359)       0:00:10.431 ***********\nchanged: [localhost]\n\nPLAY [Generate Neutron configuration for workspace] ****************************\n\nTASK [Ensure the Neutron configuration file exists] ****************************\nTuesday 19 May 2026  16:27:51 +0000 (0:00:00.188)       0:00:10.620 ***********\nchanged: [localhost]\n\nTASK [Load the current Neutron configuration into a variable] ******************\nTuesday 19 May 2026  16:27:51 +0000 (0:00:00.180)       0:00:10.801 ***********\nok: [localhost]\n\nTASK [Generate Neutron values for missing variables] ***************************\nTuesday 19 May 2026  16:27:51 +0000 (0:00:00.032)       0:00:10.833 ***********\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] ****************************\nTuesday 19 May 2026  16:27:51 +0000 (0:00:00.045)       0:00:10.878 ***********\nchanged: [localhost]\n\nPLAY [Generate Nova configuration for workspace] *******************************\n\nTASK [Ensure the Nova configuration file exists] *******************************\nTuesday 19 May 2026  16:27:52 +0000 (0:00:00.364)       0:00:11.242 ***********\nchanged: [localhost]\n\nTASK [Load the current Nova configuration into a variable] *********************\nTuesday 19 May 2026  16:27:52 +0000 (0:00:00.173)       0:00:11.416 ***********\nok: [localhost]\n\nTASK [Generate Nova values for missing variables] ******************************\nTuesday 19 May 2026  16:27:52 +0000 (0:00:00.031)       0:00:11.447 ***********\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] *******************************\nTuesday 19 May 2026  16:27:52 +0000 (0:00:00.044)       0:00:11.492 ***********\nchanged: [localhost]\n\nPLAY [Generate secrets for workspace] ******************************************\n\nTASK [Ensure the secrets file exists] ******************************************\nTuesday 19 May 2026  16:27:52 +0000 (0:00:00.414)       0:00:11.906 ***********\nchanged: [localhost]\n\nTASK [Load the current secrets into a variable] ********************************\nTuesday 19 May 2026  16:27:53 +0000 (0:00:00.177)       0:00:12.084 ***********\nok: [localhost]\n\nTASK [Generate secrets for missing variables] **********************************\nTuesday 19 May 2026  16:27:53 +0000 (0:00:00.034)       0:00:12.118 ***********\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] *****************************************\nTuesday 19 May 2026  16:27:53 +0000 (0:00:00.445)       0:00:12.564 ***********\nok: [localhost] => (item=barbican_kek)\n\nTASK [Generate temporary files for generating keys for missing variables] ******\nTuesday 19 May 2026  16:27:53 +0000 (0:00:00.060)       0:00:12.625 ***********\nchanged: [localhost] => (item=manila_ssh_key)\nchanged: [localhost] => (item=nova_ssh_key)\n\nTASK [Generate SSH keys for missing variables] *********************************\nTuesday 19 May 2026  16:27:54 +0000 (0:00:00.429)       0:00:13.055 ***********\nchanged: [localhost] => (item=manila_ssh_key)\nchanged: [localhost] => (item=nova_ssh_key)\n\nTASK [Set values for SSH keys] *************************************************\nTuesday 19 May 2026  16:27:57 +0000 (0:00:03.259)       0:00:16.314 ***********\nok: [localhost] => (item=manila_ssh_key)\nok: [localhost] => (item=nova_ssh_key)\n\nTASK [Delete the temporary files generated for SSH keys] ***********************\nTuesday 19 May 2026  16:27:57 +0000 (0:00:00.047)       0:00:16.361 ***********\nchanged: [localhost] => (item=manila_ssh_key)\nchanged: [localhost] => (item=nova_ssh_key)\n\nTASK [Write new secrets file to disk] ******************************************\nTuesday 19 May 2026  16:27:57 +0000 (0:00:00.357)       0:00:16.718 ***********\nchanged: [localhost]\n\nTASK [Encrypt secrets file with Vault password] ********************************\nTuesday 19 May 2026  16:27:58 +0000 (0:00:00.377)       0:00:17.096 ***********\nskipping: [localhost]\n\nPLAY [Setup networking] ********************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:27:58 +0000 (0:00:00.030)       0:00:17.127 ***********\nok: [instance]\n\nTASK [Create bridge for management network] ************************************\nTuesday 19 May 2026  16:27:58 +0000 (0:00:00.697)       0:00:17.824 ***********\nok: [instance]\n\nTASK [Create fake interface for management bridge] *****************************\nTuesday 19 May 2026  16:27:59 +0000 (0:00:00.416)       0:00:18.241 ***********\nok: [instance]\n\nTASK [Assign dummy interface to management bridge] *****************************\nTuesday 19 May 2026  16:27:59 +0000 (0:00:00.217)       0:00:18.459 ***********\nok: [instance]\n\nTASK [Assign IP address for management bridge] *********************************\nTuesday 19 May 2026  16:27:59 +0000 (0:00:00.193)       0:00:18.652 ***********\nok: [instance]\n\nTASK [Bring up interfaces] *****************************************************\nTuesday 19 May 2026  16:27:59 +0000 (0:00:00.200)       0:00:18.853 ***********\nok: [instance] => (item=br-mgmt)\nok: [instance] => (item=dummy0)\n\nPLAY [Create devices for Ceph] *************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:28:00 +0000 (0:00:00.398)       0:00:19.251 ***********\nok: [instance]\n\nTASK [Install depedencies] *****************************************************\nTuesday 19 May 2026  16:28:00 +0000 (0:00:00.736)       0:00:19.988 ***********\nchanged: [instance]\n\nTASK [Start up service] ********************************************************\nTuesday 19 May 2026  16:28:23 +0000 (0:00:22.863)       0:00:42.851 ***********\nok: [instance]\n\nTASK [Generate lvm.conf] *******************************************************\nTuesday 19 May 2026  16:28:24 +0000 (0:00:00.588)       0:00:43.440 ***********\nok: [instance]\n\nTASK [Write /etc/lvm/lvm.conf] *************************************************\nTuesday 19 May 2026  16:28:24 +0000 (0:00:00.211)       0:00:43.651 ***********\nchanged: [instance]\n\nTASK [Get list of all loopback devices] ****************************************\nTuesday 19 May 2026  16:28:25 +0000 (0:00:00.483)       0:00:44.134 ***********\nok: [instance]\n\nTASK [Fail if there is any existing loopback devices] **************************\nTuesday 19 May 2026  16:28:25 +0000 (0:00:00.229)       0:00:44.364 ***********\nskipping: [instance]\n\nTASK [Create devices for Ceph] *************************************************\nTuesday 19 May 2026  16:28:25 +0000 (0:00:00.026)       0:00:44.391 ***********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Set permissions on loopback devices] *************************************\nTuesday 19 May 2026  16:28:25 +0000 (0:00:00.565)       0:00:44.956 ***********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Start loop devices] ******************************************************\nTuesday 19 May 2026  16:28:26 +0000 (0:00:00.567)       0:00:45.524 ***********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Create a volume group for each loop device] ******************************\nTuesday 19 May 2026  16:28:27 +0000 (0:00:00.804)       0:00:46.329 ***********\nchanged: [instance] => (item=osd0)\nchanged: [instance] => (item=osd1)\nchanged: [instance] => (item=osd2)\n\nTASK [Create a logical volume for each loop device] ****************************\nTuesday 19 May 2026  16:28:30 +0000 (0:00:03.230)       0:00:49.559 ***********\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] *********************************************************\nTuesday 19 May 2026  16:28:32 +0000 (0:00:01.914)       0:00:51.474 ***********\nok: [instance]\n\nTASK [Set masquerade rule] *****************************************************\nTuesday 19 May 2026  16:28:33 +0000 (0:00:00.966)       0:00:52.441 ***********\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\nTuesday 19 May 2026  16:28:33 +0000 (0:00:00.481)       0:00:52.923 ***********\n===============================================================================\nInstall depedencies ---------------------------------------------------- 22.86s\nGenerate SSH keys for missing variables --------------------------------- 3.26s\nCreate a volume group for each loop device ------------------------------ 3.23s\nCreate a logical volume for each loop device ---------------------------- 1.91s\nInstall \"dirmngr\" for GPG keyserver operations -------------------------- 1.39s\nGathering Facts --------------------------------------------------------- 1.19s\nCreate folders for workspace -------------------------------------------- 1.12s\nGathering Facts --------------------------------------------------------- 0.97s\nPurge \"snapd\" package --------------------------------------------------- 0.87s\nGenerate endpoint skeleton for missing variables ------------------------ 0.82s\nStart loop devices ------------------------------------------------------ 0.80s\nGathering Facts --------------------------------------------------------- 0.74s\nConfigure short hostname ------------------------------------------------ 0.71s\nGathering Facts --------------------------------------------------------- 0.70s\nGathering Facts --------------------------------------------------------- 0.70s\nStart up service -------------------------------------------------------- 0.59s\nWrite new Ceph control plane configuration file to disk ----------------- 0.57s\nSet permissions on loopback devices ------------------------------------- 0.57s\nCreate devices for Ceph ------------------------------------------------- 0.57s\nWrite /etc/lvm/lvm.conf ------------------------------------------------- 0.48s\nINFO     [aio > prepare] Executed: Successful\nINFO     [aio > converge] Executing\n\nPLAY [all] *********************************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:28:37 +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 [Fail if atmosphere_ceph_enabled is set] **********************************\nTuesday 19 May 2026  16:28:38 +0000 (0:00:01.248)       0:00:01.273 ***********\nskipping: [instance]\n\nTASK [Set a fact with the \"atmosphere_images\" for other plays] *****************\nTuesday 19 May 2026  16:28:38 +0000 (0:00:00.044)       0:00:01.317 ***********\nok: [instance]\n\nPLAY [Deploy Ceph monitors & managers] *****************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:28:38 +0000 (0:00:00.196)       0:00:01.513 ***********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:28:39 +0000 (0:00:00.930)       0:00:02.443 ***********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:28:39 +0000 (0:00:00.312)       0:00:02.756 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nTuesday 19 May 2026  16:28:39 +0000 (0:00:00.046)       0:00:02.803 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:28:40 +0000 (0:00:00.315)       0:00:03.118 ***********\nok: [instance] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.3.0/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 19 May 2026  16:28:40 +0000 (0:00:00.072)       0:00:03.191 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:28:40 +0000 (0:00:00.684)       0:00:03.876 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:28:40 +0000 (0:00:00.054)       0:00:03.930 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:28:40 +0000 (0:00:00.053)       0:00:03.984 ***********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:28:41 +0000 (0:00:00.232)       0:00:04.217 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:28:42 +0000 (0:00:01.375)       0:00:05.593 ***********\nok: [instance] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.1.4/containerd-2.1.4-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 19 May 2026  16:28:42 +0000 (0:00:00.068)       0:00:05.662 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:28:43 +0000 (0:00:00.936)       0:00:06.598 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nTuesday 19 May 2026  16:28:46 +0000 (0:00:02.850)       0:00:09.449 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nTuesday 19 May 2026  16:28:46 +0000 (0:00:00.040)       0:00:09.489 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nTuesday 19 May 2026  16:28:46 +0000 (0:00:00.040)       0:00:09.530 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nTuesday 19 May 2026  16:28:46 +0000 (0:00:00.038)       0:00:09.568 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nTuesday 19 May 2026  16:28:52 +0000 (0:00:06.167)       0:00:15.735 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nTuesday 19 May 2026  16:28:53 +0000 (0:00:00.665)       0:00:16.401 ***********\nchanged: [instance] => (item={'path': '/etc/containerd'})\nchanged: [instance] => (item={'path': '/var/lib/containerd'})\nchanged: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nTuesday 19 May 2026  16:28:53 +0000 (0:00:00.601)       0:00:17.003 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 19 May 2026  16:28:54 +0000 (0:00:00.603)       0:00:17.606 ***********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************\nTuesday 19 May 2026  16:28:54 +0000 (0:00:00.008)       0:00:17.615 ***********\nok: [instance]\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nTuesday 19 May 2026  16:28:55 +0000 (0:00:00.961)       0:00:18.577 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nTuesday 19 May 2026  16:28:56 +0000 (0:00:00.476)       0:00:19.053 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:28:56 +0000 (0:00:00.566)       0:00:19.619 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:28:56 +0000 (0:00:00.238)       0:00:19.857 ***********\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] *******************\nTuesday 19 May 2026  16:28:56 +0000 (0:00:00.062)       0:00:19.920 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:28:57 +0000 (0:00:00.892)       0:00:20.813 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Install AppArmor packages] ******************\nTuesday 19 May 2026  16:29:02 +0000 (0:00:04.405)       0:00:25.218 ***********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************\nTuesday 19 May 2026  16:29:03 +0000 (0:00:01.221)       0:00:26.440 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Create systemd service file for docker] *****\nTuesday 19 May 2026  16:29:03 +0000 (0:00:00.412)       0:00:26.852 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Create folders for configuration] ***********\nTuesday 19 May 2026  16:29:04 +0000 (0:00:00.475)       0:00:27.327 ***********\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] ******\nTuesday 19 May 2026  16:29:04 +0000 (0:00:00.619)       0:00:27.946 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Create docker daemon config file] ***********\nTuesday 19 May 2026  16:29:05 +0000 (0:00:00.498)       0:00:28.444 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Force any restarts if necessary] ************\nTuesday 19 May 2026  16:29:05 +0000 (0:00:00.477)       0:00:28.922 ***********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************\nTuesday 19 May 2026  16:29:05 +0000 (0:00:00.011)       0:00:28.933 ***********\nok: [instance]\n\nRUNNING HANDLER [vexxhost.containers.docker : Restart docker] ******************\nTuesday 19 May 2026  16:29:06 +0000 (0:00:00.751)       0:00:29.685 ***********\nchanged: [instance]\n\nTASK [vexxhost.containers.docker : Enable and start service] *******************\nTuesday 19 May 2026  16:29:07 +0000 (0:00:01.199)       0:00:30.884 ***********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******\nTuesday 19 May 2026  16:29:08 +0000 (0:00:00.561)       0:00:31.446 ***********\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] ********************************\nTuesday 19 May 2026  16:29:08 +0000 (0:00:00.064)       0:00:31.511 ***********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure services are started] *********************\nTuesday 19 May 2026  16:29:14 +0000 (0:00:05.549)       0:00:37.060 ***********\nok: [instance] => (item=chronyd)\nok: [instance] => (item=sshd)\n\nTASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************\nTuesday 19 May 2026  16:29:14 +0000 (0:00:00.667)       0:00:37.727 ***********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************\nTuesday 19 May 2026  16:29:15 +0000 (0:00:00.312)       0:00:38.040 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************\nTuesday 19 May 2026  16:29:15 +0000 (0:00:00.209)       0:00:38.250 ***********\nchanged: [instance]\n\nTASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***\nTuesday 19 May 2026  16:29:15 +0000 (0:00:00.514)       0:00:38.765 ***********\nchanged: [instance]\n\nTASK [vexxhost.ceph.mon : Get `cephadm ls` status] *****************************\nTuesday 19 May 2026  16:29:16 +0000 (0:00:00.372)       0:00:39.137 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Parse the `cephadm ls` output] ***********************\nTuesday 19 May 2026  16:29:17 +0000 (0:00:01.750)       0:00:40.887 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Assimilate existing configs in `ceph.conf`] **********\nTuesday 19 May 2026  16:29:17 +0000 (0:00:00.060)       0:00:40.948 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Adopt monitor to cluster] ****************************\nTuesday 19 May 2026  16:29:17 +0000 (0:00:00.045)       0:00:40.993 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Adopt manager to cluster] ****************************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.045)       0:00:41.038 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Enable \"cephadm\" mgr module] *************************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.042)       0:00:41.081 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Set orchestrator backend to \"cephadm\"] ***************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.042)       0:00:41.123 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Use `cephadm` user for cephadm] **********************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.050)       0:00:41.173 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Generate \"cephadm\" key] ******************************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.041)       0:00:41.215 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.mon : Set Ceph Monitor IP address] *************************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.041)       0:00:41.257 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Check if any node is bootstrapped] *******************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.119)       0:00:41.376 ***********\nok: [instance] => (item=instance)\n\nTASK [vexxhost.ceph.mon : Select pre-existing bootstrap node if exists] ********\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.224)       0:00:41.600 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Bootstrap cluster] ***********************************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.052)       0:00:41.653 ***********\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\"] *************\nTuesday 19 May 2026  16:29:18 +0000 (0:00:00.076)       0:00:41.730 ***********\nchanged: [instance]\n\nTASK [vexxhost.ceph.mon : Include extra configuration values] ******************\nTuesday 19 May 2026  16:29:19 +0000 (0:00:00.349)       0:00:42.079 ***********\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] *******************************\nTuesday 19 May 2026  16:29:19 +0000 (0:00:00.736)       0:00:42.815 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Remove temporary file for \"ceph.conf\"] ***************\nTuesday 19 May 2026  16:31:41 +0000 (0:02:22.090)       0:03:04.906 ***********\nchanged: [instance]\n\nTASK [vexxhost.ceph.mon : Set bootstrap node] **********************************\nTuesday 19 May 2026  16:31:42 +0000 (0:00:00.223)       0:03:05.129 ***********\nok: [instance]\n\nTASK [Install Ceph host] *******************************************************\nTuesday 19 May 2026  16:31:42 +0000 (0:00:00.050)       0:03:05.180 ***********\nincluded: vexxhost.ceph.cephadm_host for instance\n\nTASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******\nTuesday 19 May 2026  16:31:42 +0000 (0:00:00.112)       0:03:05.292 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***\nTuesday 19 May 2026  16:31:43 +0000 (0:00:01.612)       0:03:06.905 ***********\nok: [instance] => (item=instance)\n\nTASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********\nTuesday 19 May 2026  16:31:43 +0000 (0:00:00.058)       0:03:06.963 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************\nTuesday 19 May 2026  16:31:44 +0000 (0:00:00.460)       0:03:07.423 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Configure \"mon\" label for monitors] ******************\nTuesday 19 May 2026  16:31:46 +0000 (0:00:02.172)       0:03:09.596 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mon : Validate monitor exist] ******************************\nTuesday 19 May 2026  16:31:48 +0000 (0:00:01.714)       0:03:11.310 ***********\nok: [instance]\n\nTASK [Install Ceph host] *******************************************************\nTuesday 19 May 2026  16:31:59 +0000 (0:00:11.257)       0:03:22.568 ***********\nincluded: vexxhost.ceph.cephadm_host for instance\n\nTASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******\nTuesday 19 May 2026  16:31:59 +0000 (0:00:00.077)       0:03:22.645 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***\nTuesday 19 May 2026  16:31:59 +0000 (0:00:00.056)       0:03:22.702 ***********\nskipping: [instance] => (item=instance)\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********\nTuesday 19 May 2026  16:31:59 +0000 (0:00:00.051)       0:03:22.753 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************\nTuesday 19 May 2026  16:32:00 +0000 (0:00:00.267)       0:03:23.020 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mgr : Configure \"mgr\" label for managers] ******************\nTuesday 19 May 2026  16:32:02 +0000 (0:00:02.074)       0:03:25.095 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mgr : Validate manager exist] ******************************\nTuesday 19 May 2026  16:32:03 +0000 (0:00:01.729)       0:03:26.825 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.mgr : Enable the Ceph Manager prometheus module] ***********\nTuesday 19 May 2026  16:32:05 +0000 (0:00:01.663)       0:03:28.488 ***********\nok: [instance]\n\nPLAY [Deploy Ceph OSDs] ********************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:32:07 +0000 (0:00:02.497)       0:03:30.986 ***********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:32:08 +0000 (0:00:00.947)       0:03:31.934 ***********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:32:09 +0000 (0:00:00.203)       0:03:32.138 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nTuesday 19 May 2026  16:32:09 +0000 (0:00:00.040)       0:03:32.178 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:32:09 +0000 (0:00:00.221)       0:03:32.400 ***********\nok: [instance] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.3.0/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 19 May 2026  16:32:09 +0000 (0:00:00.057)       0:03:32.458 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:32:09 +0000 (0:00:00.311)       0:03:32.769 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:32:09 +0000 (0:00:00.048)       0:03:32.818 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:32:09 +0000 (0:00:00.052)       0:03:32.871 ***********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:32:10 +0000 (0:00:00.212)       0:03:33.084 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:32:11 +0000 (0:00:01.328)       0:03:34.412 ***********\nok: [instance] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.1.4/containerd-2.1.4-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 19 May 2026  16:32:11 +0000 (0:00:00.070)       0:03:34.482 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:32:11 +0000 (0:00:00.354)       0:03:34.837 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nTuesday 19 May 2026  16:32:14 +0000 (0:00:02.927)       0:03:37.764 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nTuesday 19 May 2026  16:32:14 +0000 (0:00:00.034)       0:03:37.799 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nTuesday 19 May 2026  16:32:14 +0000 (0:00:00.034)       0:03:37.833 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nTuesday 19 May 2026  16:32:14 +0000 (0:00:00.037)       0:03:37.871 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nTuesday 19 May 2026  16:32:16 +0000 (0:00:01.275)       0:03:39.147 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nTuesday 19 May 2026  16:32:16 +0000 (0:00:00.431)       0:03:39.578 ***********\nok: [instance] => (item={'path': '/etc/containerd'})\nok: [instance] => (item={'path': '/var/lib/containerd'})\nok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nTuesday 19 May 2026  16:32:17 +0000 (0:00:00.547)       0:03:40.125 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 19 May 2026  16:32:17 +0000 (0:00:00.479)       0:03:40.605 ***********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nTuesday 19 May 2026  16:32:17 +0000 (0:00:00.009)       0:03:40.615 ***********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:32:17 +0000 (0:00:00.354)       0:03:40.969 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:32:18 +0000 (0:00:00.232)       0:03:41.202 ***********\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] *******************\nTuesday 19 May 2026  16:32:18 +0000 (0:00:00.053)       0:03:41.255 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:32:18 +0000 (0:00:00.365)       0:03:41.620 ***********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Install AppArmor packages] ******************\nTuesday 19 May 2026  16:32:21 +0000 (0:00:03.105)       0:03:44.726 ***********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************\nTuesday 19 May 2026  16:32:23 +0000 (0:00:01.318)       0:03:46.044 ***********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Create systemd service file for docker] *****\nTuesday 19 May 2026  16:32:23 +0000 (0:00:00.205)       0:03:46.250 ***********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Create folders for configuration] ***********\nTuesday 19 May 2026  16:32:23 +0000 (0:00:00.478)       0:03:46.728 ***********\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] ******\nTuesday 19 May 2026  16:32:24 +0000 (0:00:00.600)       0:03:47.328 ***********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Create docker daemon config file] ***********\nTuesday 19 May 2026  16:32:24 +0000 (0:00:00.434)       0:03:47.763 ***********\nok: [instance]\n\nTASK [vexxhost.containers.docker : Force any restarts if necessary] ************\nTuesday 19 May 2026  16:32:25 +0000 (0:00:00.447)       0:03:48.210 ***********\n\nTASK [vexxhost.containers.docker : Enable and start service] *******************\nTuesday 19 May 2026  16:32:25 +0000 (0:00:00.006)       0:03:48.217 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******\nTuesday 19 May 2026  16:32:25 +0000 (0:00:00.361)       0:03:48.579 ***********\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] ********************************\nTuesday 19 May 2026  16:32:25 +0000 (0:00:00.062)       0:03:48.641 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure services are started] *********************\nTuesday 19 May 2026  16:32:26 +0000 (0:00:01.307)       0:03:49.949 ***********\nok: [instance] => (item=chronyd)\nok: [instance] => (item=sshd)\n\nTASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************\nTuesday 19 May 2026  16:32:27 +0000 (0:00:00.686)       0:03:50.636 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************\nTuesday 19 May 2026  16:32:27 +0000 (0:00:00.300)       0:03:50.936 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************\nTuesday 19 May 2026  16:32:28 +0000 (0:00:00.202)       0:03:51.139 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***\nTuesday 19 May 2026  16:32:28 +0000 (0:00:00.244)       0:03:51.383 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get monitor status] **********************************\nTuesday 19 May 2026  16:32:28 +0000 (0:00:00.215)       0:03:51.599 ***********\nok: [instance] => (item=instance)\n\nTASK [vexxhost.ceph.osd : Select admin host] ***********************************\nTuesday 19 May 2026  16:32:28 +0000 (0:00:00.230)       0:03:51.830 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get `cephadm ls` status] *****************************\nTuesday 19 May 2026  16:32:28 +0000 (0:00:00.053)       0:03:51.884 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Parse the `cephadm ls` output] ***********************\nTuesday 19 May 2026  16:32:33 +0000 (0:00:05.106)       0:03:56.990 ***********\nok: [instance]\n\nTASK [Install Ceph host] *******************************************************\nTuesday 19 May 2026  16:32:34 +0000 (0:00:00.053)       0:03:57.044 ***********\nincluded: vexxhost.ceph.cephadm_host for instance\n\nTASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******\nTuesday 19 May 2026  16:32:34 +0000 (0:00:00.075)       0:03:57.119 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***\nTuesday 19 May 2026  16:32:34 +0000 (0:00:00.044)       0:03:57.163 ***********\nskipping: [instance] => (item=instance)\nskipping: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********\nTuesday 19 May 2026  16:32:34 +0000 (0:00:00.051)       0:03:57.214 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************\nTuesday 19 May 2026  16:32:34 +0000 (0:00:00.278)       0:03:57.492 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Adopt OSDs to cluster] *******************************\nTuesday 19 May 2026  16:32:36 +0000 (0:00:02.108)       0:03:59.601 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.osd : Wait until OSD added to cephadm] *********************\nTuesday 19 May 2026  16:32:36 +0000 (0:00:00.035)       0:03:59.636 ***********\nskipping: [instance]\n\nTASK [vexxhost.ceph.osd : Ensure all OSDs are non-legacy] **********************\nTuesday 19 May 2026  16:32:36 +0000 (0:00:00.035)       0:03:59.672 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get `ceph-volume lvm list` status] *******************\nTuesday 19 May 2026  16:32:42 +0000 (0:00:05.395)       0:04:05.068 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Install OSDs] ****************************************\nTuesday 19 May 2026  16:32:52 +0000 (0:00:10.324)       0:04:15.392 ***********\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] ****************************************\nTuesday 19 May 2026  16:34:23 +0000 (0:01:30.679)       0:05:46.072 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Mark require osd release] ****************************\nTuesday 19 May 2026  16:34:25 +0000 (0:00:01.959)       0:05:48.031 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Wait for all OSD to be running] **********************\nTuesday 19 May 2026  16:34:26 +0000 (0:00:01.716)       0:05:49.748 ***********\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] *********************************\nTuesday 19 May 2026  16:34:26 +0000 (0:00:00.068)       0:05:49.816 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Get `ceph orch ps`] **********************************\nTuesday 19 May 2026  16:34:26 +0000 (0:00:00.053)       0:05:49.870 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : OSD daemon list] *************************************\nTuesday 19 May 2026  16:34:28 +0000 (0:00:01.809)       0:05:51.680 ***********\nok: [instance]\n\nTASK [vexxhost.ceph.osd : Fail if any OSD not running] *************************\nTuesday 19 May 2026  16:34:28 +0000 (0:00:00.055)       0:05:51.735 ***********\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] ************************\nTuesday 19 May 2026  16:34:28 +0000 (0:00:00.049)       0:05:51.784 ***********\nskipping: [instance]\n\nPLAY [all] *********************************************************************\n\nTASK [Ensure RBD kernel module is loaded] **************************************\nTuesday 19 May 2026  16:34:28 +0000 (0:00:00.170)       0:05:51.955 ***********\nchanged: [instance]\n\nPLAY [all] *********************************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:34:29 +0000 (0:00:00.326)       0:05:52.281 ***********\nok: [instance]\n\nTASK [vexxhost.atmosphere.sysctl : Configure sysctl values] ********************\nTuesday 19 May 2026  16:34:30 +0000 (0:00:01.013)       0:05:53.294 ***********\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] ***\nTuesday 19 May 2026  16:34:35 +0000 (0:00:04.832)       0:05:58.127 ***********\nchanged: [instance]\n\nTASK [vexxhost.atmosphere.ethtool : Install persistent \"ethtool\" tuning] *******\nTuesday 19 May 2026  16:34:35 +0000 (0:00:00.218)       0:05:58.346 ***********\nchanged: [instance]\n\nTASK [vexxhost.atmosphere.ethtool : Run \"ethtool\" tuning] **********************\nTuesday 19 May 2026  16:34:35 +0000 (0:00:00.451)       0:05:58.797 ***********\nok: [instance]\n\nTASK [Set a fact with the \"atmosphere_images\" for other plays] *****************\nTuesday 19 May 2026  16:34:36 +0000 (0:00:00.256)       0:05:59.054 ***********\nok: [instance]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:34:36 +0000 (0:00:00.046)       0:05:59.100 ***********\nok: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nTuesday 19 May 2026  16:34:37 +0000 (0:00:00.918)       0:06:00.019 ***********\nchanged: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nTuesday 19 May 2026  16:34:37 +0000 (0:00:00.211)       0:06:00.230 ***********\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] ****\nTuesday 19 May 2026  16:34:38 +0000 (0:00:00.883)       0:06:01.114 ***********\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] *********\nTuesday 19 May 2026  16:34:38 +0000 (0:00:00.561)       0:06:01.675 ***********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nTuesday 19 May 2026  16:34:38 +0000 (0:00:00.188)       0:06:01.864 ***********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nTuesday 19 May 2026  16:34:39 +0000 (0:00:00.188)       0:06:02.052 ***********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nTuesday 19 May 2026  16:34:39 +0000 (0:00:00.036)       0:06:02.088 ***********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nTuesday 19 May 2026  16:34:39 +0000 (0:00:00.037)       0:06:02.126 ***********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nTuesday 19 May 2026  16:34:39 +0000 (0:00:00.523)       0:06:02.650 ***********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nTuesday 19 May 2026  16:34:39 +0000 (0:00:00.198)       0:06:02.848 ***********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nTuesday 19 May 2026  16:34:39 +0000 (0:00:00.067)       0:06:02.916 ***********\nok: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:34:40 +0000 (0:00:00.930)       0:06:03.846 ***********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:34:41 +0000 (0:00:00.233)       0:06:04.080 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nTuesday 19 May 2026  16:34:41 +0000 (0:00:00.052)       0:06:04.132 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:34:41 +0000 (0:00:00.221)       0:06:04.354 ***********\nok: [instance] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.3.0/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 19 May 2026  16:34:41 +0000 (0:00:00.057)       0:06:04.412 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:34:41 +0000 (0:00:00.309)       0:06:04.721 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:34:41 +0000 (0:00:00.049)       0:06:04.771 ***********\nok: [instance]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nTuesday 19 May 2026  16:34:41 +0000 (0:00:00.226)       0:06:04.998 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:34:43 +0000 (0:00:01.116)       0:06:06.114 ***********\nok: [instance] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.1.4/containerd-2.1.4-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 19 May 2026  16:34:43 +0000 (0:00:00.070)       0:06:06.185 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nTuesday 19 May 2026  16:34:43 +0000 (0:00:00.342)       0:06:06.527 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nTuesday 19 May 2026  16:34:45 +0000 (0:00:01.899)       0:06:08.427 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nTuesday 19 May 2026  16:34:45 +0000 (0:00:00.034)       0:06:08.461 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nTuesday 19 May 2026  16:34:45 +0000 (0:00:00.037)       0:06:08.499 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nTuesday 19 May 2026  16:34:45 +0000 (0:00:00.031)       0:06:08.530 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nTuesday 19 May 2026  16:34:46 +0000 (0:00:01.275)       0:06:09.805 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nTuesday 19 May 2026  16:34:47 +0000 (0:00:00.502)       0:06:10.308 ***********\nok: [instance] => (item={'path': '/etc/containerd'})\nok: [instance] => (item={'path': '/var/lib/containerd'})\nok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nTuesday 19 May 2026  16:34:47 +0000 (0:00:00.581)       0:06:10.890 ***********\nok: [instance]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nTuesday 19 May 2026  16:34:48 +0000 (0:00:00.518)       0:06:11.408 ***********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nTuesday 19 May 2026  16:34:48 +0000 (0:00:00.009)       0:06:11.417 ***********\nok: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nTuesday 19 May 2026  16:34:48 +0000 (0:00:00.374)       0:06:11.792 ***********\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] ***\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.595)       0:06:12.387 ***********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.037)       0:06:12.425 ***********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.036)       0:06:12.461 ***********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.040)       0:06:12.502 ***********\nskipping: [instance]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.042)       0:06:12.545 ***********\nskipping: [instance]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.054)       0:06:12.599 ***********\nok: [instance]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.210)       0:06:12.809 ***********\nok: [instance] => {\n    \"msg\": \"https://cdn.dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nTuesday 19 May 2026  16:34:49 +0000 (0:00:00.047)       0:06:12.857 ***********\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=147  changed=31   unreachable=0    failed=1    skipped=38   rescued=0    ignored=2\n\nTuesday 19 May 2026  16:35:11 +0000 (0:00:21.225)       0:06:34.083 ***********\n===============================================================================\nvexxhost.ceph.mon : Run Bootstrap coomand ----------------------------- 142.09s\nvexxhost.ceph.osd : Install OSDs --------------------------------------- 90.68s\nvexxhost.containers.download_artifact : Download item ------------------ 21.23s\nvexxhost.ceph.mon : Validate monitor exist ----------------------------- 11.26s\nvexxhost.ceph.osd : Get `ceph-volume lvm list` status ------------------ 10.32s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 6.17s\nvexxhost.ceph.cephadm : Install packages -------------------------------- 5.55s\nvexxhost.ceph.osd : Ensure all OSDs are non-legacy ---------------------- 5.40s\nvexxhost.ceph.osd : Get `cephadm ls` status ----------------------------- 5.11s\nvexxhost.atmosphere.sysctl : Configure sysctl values -------------------- 4.83s\nvexxhost.containers.download_artifact : Extract archive ----------------- 4.41s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.11s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.93s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.85s\nvexxhost.ceph.mgr : Enable the Ceph Manager prometheus module ----------- 2.50s\nvexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.17s\nvexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.11s\nvexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.07s\nvexxhost.ceph.osd : Get mon dump ---------------------------------------- 1.96s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.90s\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": [
                                "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] *********************************************************",
                                "Tuesday 19 May 2026  16:27:40 +0000 (0:00:00.028)       0:00:00.028 ***********",
                                "[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] ************************************************",
                                "Tuesday 19 May 2026  16:27:42 +0000 (0:00:01.187)       0:00:01.216 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [Ensure hostname inside hosts file] ***************************************",
                                "Tuesday 19 May 2026  16:27:42 +0000 (0:00:00.714)       0:00:01.930 ***********",
                                "[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] **************************",
                                "Tuesday 19 May 2026  16:27:43 +0000 (0:00:00.287)       0:00:02.217 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Purge \"snapd\" package] ***************************************************",
                                "Tuesday 19 May 2026  16:27:44 +0000 (0:00:01.393)       0:00:03.611 ***********",
                                "ok: [instance]",
                                "",
                                "PLAY [Generate workspace for Atmosphere] ***************************************",
                                "",
                                "TASK [Create folders for workspace] ********************************************",
                                "Tuesday 19 May 2026  16:27:45 +0000 (0:00:00.866)       0:00:04.477 ***********",
                                "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] *****************",
                                "Tuesday 19 May 2026  16:27:46 +0000 (0:00:01.115)       0:00:05.593 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Ceph control plane configuration into a variable] *******",
                                "Tuesday 19 May 2026  16:27:46 +0000 (0:00:00.209)       0:00:05.802 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Ceph control plane values for missing variables] ****************",
                                "Tuesday 19 May 2026  16:27:46 +0000 (0:00:00.021)       0:00:05.824 ***********",
                                "ok: [localhost] => (item={'key': 'ceph_fsid', 'value': '2f909984-6cd8-51b9-b268-75aa348d5f42'})",
                                "ok: [localhost] => (item={'key': 'ceph_mon_public_network', 'value': '10.96.240.0/24'})",
                                "",
                                "TASK [Write new Ceph control plane configuration file to disk] *****************",
                                "Tuesday 19 May 2026  16:27:46 +0000 (0:00:00.047)       0:00:05.872 ***********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Ceph OSD configuration for workspace] ***************************",
                                "",
                                "TASK [Ensure the Ceph OSDs configuration file exists] **************************",
                                "Tuesday 19 May 2026  16:27:47 +0000 (0:00:00.574)       0:00:06.446 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Ceph OSDs configuration into a variable] ****************",
                                "Tuesday 19 May 2026  16:27:47 +0000 (0:00:00.191)       0:00:06.637 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Ceph OSDs values for missing variables] *************************",
                                "Tuesday 19 May 2026  16:27:47 +0000 (0:00:00.025)       0:00:06.662 ***********",
                                "ok: [localhost] => (item={'key': 'ceph_osd_devices', 'value': ['/dev/vdb', '/dev/vdc', '/dev/vdd']})",
                                "",
                                "TASK [Write new Ceph OSDs configuration file to disk] **************************",
                                "Tuesday 19 May 2026  16:27:47 +0000 (0:00:00.031)       0:00:06.693 ***********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Kubernetes configuration for workspace] *************************",
                                "",
                                "TASK [Ensure the Kubernetes configuration file exists] *************************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.399)       0:00:07.093 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Kubernetes configuration into a variable] ***************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.174)       0:00:07.268 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Kubernetes values for missing variables] ************************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.026)       0:00:07.294 ***********",
                                "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] *************************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.044)       0:00:07.339 ***********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Keepalived configuration for workspace] *************************",
                                "",
                                "TASK [Ensure the Keeaplived configuration file exists] *************************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.372)       0:00:07.712 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Keepalived configuration into a variable] ***************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.191)       0:00:07.903 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Keepalived values for missing variables] ************************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.023)       0:00:07.927 ***********",
                                "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] *************************",
                                "Tuesday 19 May 2026  16:27:48 +0000 (0:00:00.038)       0:00:07.966 ***********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate endpoints for workspace] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:27:49 +0000 (0:00:00.380)       0:00:08.347 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Ensure the endpoints file exists] ****************************************",
                                "Tuesday 19 May 2026  16:27:50 +0000 (0:00:00.700)       0:00:09.047 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current endpoints into a variable] ******************************",
                                "Tuesday 19 May 2026  16:27:50 +0000 (0:00:00.182)       0:00:09.230 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate endpoint skeleton for missing variables] ************************",
                                "Tuesday 19 May 2026  16:27:50 +0000 (0:00:00.024)       0:00:09.254 ***********",
                                "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] ****************************************",
                                "Tuesday 19 May 2026  16:27:51 +0000 (0:00:00.817)       0:00:10.072 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Ensure the endpoints file exists] ****************************************",
                                "Tuesday 19 May 2026  16:27:51 +0000 (0:00:00.359)       0:00:10.431 ***********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Neutron configuration for workspace] ****************************",
                                "",
                                "TASK [Ensure the Neutron configuration file exists] ****************************",
                                "Tuesday 19 May 2026  16:27:51 +0000 (0:00:00.188)       0:00:10.620 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Neutron configuration into a variable] ******************",
                                "Tuesday 19 May 2026  16:27:51 +0000 (0:00:00.180)       0:00:10.801 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Neutron values for missing variables] ***************************",
                                "Tuesday 19 May 2026  16:27:51 +0000 (0:00:00.032)       0:00:10.833 ***********",
                                "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] ****************************",
                                "Tuesday 19 May 2026  16:27:51 +0000 (0:00:00.045)       0:00:10.878 ***********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate Nova configuration for workspace] *******************************",
                                "",
                                "TASK [Ensure the Nova configuration file exists] *******************************",
                                "Tuesday 19 May 2026  16:27:52 +0000 (0:00:00.364)       0:00:11.242 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current Nova configuration into a variable] *********************",
                                "Tuesday 19 May 2026  16:27:52 +0000 (0:00:00.173)       0:00:11.416 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate Nova values for missing variables] ******************************",
                                "Tuesday 19 May 2026  16:27:52 +0000 (0:00:00.031)       0:00:11.447 ***********",
                                "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] *******************************",
                                "Tuesday 19 May 2026  16:27:52 +0000 (0:00:00.044)       0:00:11.492 ***********",
                                "changed: [localhost]",
                                "",
                                "PLAY [Generate secrets for workspace] ******************************************",
                                "",
                                "TASK [Ensure the secrets file exists] ******************************************",
                                "Tuesday 19 May 2026  16:27:52 +0000 (0:00:00.414)       0:00:11.906 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Load the current secrets into a variable] ********************************",
                                "Tuesday 19 May 2026  16:27:53 +0000 (0:00:00.177)       0:00:12.084 ***********",
                                "ok: [localhost]",
                                "",
                                "TASK [Generate secrets for missing variables] **********************************",
                                "Tuesday 19 May 2026  16:27:53 +0000 (0:00:00.034)       0:00:12.118 ***********",
                                "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] *****************************************",
                                "Tuesday 19 May 2026  16:27:53 +0000 (0:00:00.445)       0:00:12.564 ***********",
                                "ok: [localhost] => (item=barbican_kek)",
                                "",
                                "TASK [Generate temporary files for generating keys for missing variables] ******",
                                "Tuesday 19 May 2026  16:27:53 +0000 (0:00:00.060)       0:00:12.625 ***********",
                                "changed: [localhost] => (item=manila_ssh_key)",
                                "changed: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Generate SSH keys for missing variables] *********************************",
                                "Tuesday 19 May 2026  16:27:54 +0000 (0:00:00.429)       0:00:13.055 ***********",
                                "changed: [localhost] => (item=manila_ssh_key)",
                                "changed: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Set values for SSH keys] *************************************************",
                                "Tuesday 19 May 2026  16:27:57 +0000 (0:00:03.259)       0:00:16.314 ***********",
                                "ok: [localhost] => (item=manila_ssh_key)",
                                "ok: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Delete the temporary files generated for SSH keys] ***********************",
                                "Tuesday 19 May 2026  16:27:57 +0000 (0:00:00.047)       0:00:16.361 ***********",
                                "changed: [localhost] => (item=manila_ssh_key)",
                                "changed: [localhost] => (item=nova_ssh_key)",
                                "",
                                "TASK [Write new secrets file to disk] ******************************************",
                                "Tuesday 19 May 2026  16:27:57 +0000 (0:00:00.357)       0:00:16.718 ***********",
                                "changed: [localhost]",
                                "",
                                "TASK [Encrypt secrets file with Vault password] ********************************",
                                "Tuesday 19 May 2026  16:27:58 +0000 (0:00:00.377)       0:00:17.096 ***********",
                                "skipping: [localhost]",
                                "",
                                "PLAY [Setup networking] ********************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:27:58 +0000 (0:00:00.030)       0:00:17.127 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Create bridge for management network] ************************************",
                                "Tuesday 19 May 2026  16:27:58 +0000 (0:00:00.697)       0:00:17.824 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Create fake interface for management bridge] *****************************",
                                "Tuesday 19 May 2026  16:27:59 +0000 (0:00:00.416)       0:00:18.241 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Assign dummy interface to management bridge] *****************************",
                                "Tuesday 19 May 2026  16:27:59 +0000 (0:00:00.217)       0:00:18.459 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Assign IP address for management bridge] *********************************",
                                "Tuesday 19 May 2026  16:27:59 +0000 (0:00:00.193)       0:00:18.652 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Bring up interfaces] *****************************************************",
                                "Tuesday 19 May 2026  16:27:59 +0000 (0:00:00.200)       0:00:18.853 ***********",
                                "ok: [instance] => (item=br-mgmt)",
                                "ok: [instance] => (item=dummy0)",
                                "",
                                "PLAY [Create devices for Ceph] *************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:28:00 +0000 (0:00:00.398)       0:00:19.251 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Install depedencies] *****************************************************",
                                "Tuesday 19 May 2026  16:28:00 +0000 (0:00:00.736)       0:00:19.988 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [Start up service] ********************************************************",
                                "Tuesday 19 May 2026  16:28:23 +0000 (0:00:22.863)       0:00:42.851 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Generate lvm.conf] *******************************************************",
                                "Tuesday 19 May 2026  16:28:24 +0000 (0:00:00.588)       0:00:43.440 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Write /etc/lvm/lvm.conf] *************************************************",
                                "Tuesday 19 May 2026  16:28:24 +0000 (0:00:00.211)       0:00:43.651 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [Get list of all loopback devices] ****************************************",
                                "Tuesday 19 May 2026  16:28:25 +0000 (0:00:00.483)       0:00:44.134 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Fail if there is any existing loopback devices] **************************",
                                "Tuesday 19 May 2026  16:28:25 +0000 (0:00:00.229)       0:00:44.364 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [Create devices for Ceph] *************************************************",
                                "Tuesday 19 May 2026  16:28:25 +0000 (0:00:00.026)       0:00:44.391 ***********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Set permissions on loopback devices] *************************************",
                                "Tuesday 19 May 2026  16:28:25 +0000 (0:00:00.565)       0:00:44.956 ***********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Start loop devices] ******************************************************",
                                "Tuesday 19 May 2026  16:28:26 +0000 (0:00:00.567)       0:00:45.524 ***********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Create a volume group for each loop device] ******************************",
                                "Tuesday 19 May 2026  16:28:27 +0000 (0:00:00.804)       0:00:46.329 ***********",
                                "changed: [instance] => (item=osd0)",
                                "changed: [instance] => (item=osd1)",
                                "changed: [instance] => (item=osd2)",
                                "",
                                "TASK [Create a logical volume for each loop device] ****************************",
                                "Tuesday 19 May 2026  16:28:30 +0000 (0:00:03.230)       0:00:49.559 ***********",
                                "changed: [instance] => (item=ceph-instance-osd0)",
                                "changed: [instance] => (item=ceph-instance-osd1)",
                                "changed: [instance] => (item=ceph-instance-osd2)",
                                "",
                                "PLAY [controllers] *************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:28:32 +0000 (0:00:01.914)       0:00:51.474 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Set masquerade rule] *****************************************************",
                                "Tuesday 19 May 2026  16:28:33 +0000 (0:00:00.966)       0:00:52.441 ***********",
                                "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",
                                "",
                                "Tuesday 19 May 2026  16:28:33 +0000 (0:00:00.481)       0:00:52.923 ***********",
                                "===============================================================================",
                                "Install depedencies ---------------------------------------------------- 22.86s",
                                "Generate SSH keys for missing variables --------------------------------- 3.26s",
                                "Create a volume group for each loop device ------------------------------ 3.23s",
                                "Create a logical volume for each loop device ---------------------------- 1.91s",
                                "Install \"dirmngr\" for GPG keyserver operations -------------------------- 1.39s",
                                "Gathering Facts --------------------------------------------------------- 1.19s",
                                "Create folders for workspace -------------------------------------------- 1.12s",
                                "Gathering Facts --------------------------------------------------------- 0.97s",
                                "Purge \"snapd\" package --------------------------------------------------- 0.87s",
                                "Generate endpoint skeleton for missing variables ------------------------ 0.82s",
                                "Start loop devices ------------------------------------------------------ 0.80s",
                                "Gathering Facts --------------------------------------------------------- 0.74s",
                                "Configure short hostname ------------------------------------------------ 0.71s",
                                "Gathering Facts --------------------------------------------------------- 0.70s",
                                "Gathering Facts --------------------------------------------------------- 0.70s",
                                "Start up service -------------------------------------------------------- 0.59s",
                                "Write new Ceph control plane configuration file to disk ----------------- 0.57s",
                                "Set permissions on loopback devices ------------------------------------- 0.57s",
                                "Create devices for Ceph ------------------------------------------------- 0.57s",
                                "Write /etc/lvm/lvm.conf ------------------------------------------------- 0.48s",
                                "INFO     [aio > prepare] Executed: Successful",
                                "INFO     [aio > converge] Executing",
                                "",
                                "PLAY [all] *********************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:28:37 +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 [Fail if atmosphere_ceph_enabled is set] **********************************",
                                "Tuesday 19 May 2026  16:28:38 +0000 (0:00:01.248)       0:00:01.273 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [Set a fact with the \"atmosphere_images\" for other plays] *****************",
                                "Tuesday 19 May 2026  16:28:38 +0000 (0:00:00.044)       0:00:01.317 ***********",
                                "ok: [instance]",
                                "",
                                "PLAY [Deploy Ceph monitors & managers] *****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:28:38 +0000 (0:00:00.196)       0:00:01.513 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:28:39 +0000 (0:00:00.930)       0:00:02.443 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:28:39 +0000 (0:00:00.312)       0:00:02.756 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Tuesday 19 May 2026  16:28:39 +0000 (0:00:00.046)       0:00:02.803 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:28:40 +0000 (0:00:00.315)       0:00:03.118 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.3.0/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:28:40 +0000 (0:00:00.072)       0:00:03.191 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:28:40 +0000 (0:00:00.684)       0:00:03.876 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:28:40 +0000 (0:00:00.054)       0:00:03.930 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:28:40 +0000 (0:00:00.053)       0:00:03.984 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:28:41 +0000 (0:00:00.232)       0:00:04.217 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:28:42 +0000 (0:00:01.375)       0:00:05.593 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.1.4/containerd-2.1.4-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:28:42 +0000 (0:00:00.068)       0:00:05.662 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:28:43 +0000 (0:00:00.936)       0:00:06.598 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Tuesday 19 May 2026  16:28:46 +0000 (0:00:02.850)       0:00:09.449 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Tuesday 19 May 2026  16:28:46 +0000 (0:00:00.040)       0:00:09.489 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Tuesday 19 May 2026  16:28:46 +0000 (0:00:00.040)       0:00:09.530 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Tuesday 19 May 2026  16:28:46 +0000 (0:00:00.038)       0:00:09.568 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Tuesday 19 May 2026  16:28:52 +0000 (0:00:06.167)       0:00:15.735 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Tuesday 19 May 2026  16:28:53 +0000 (0:00:00.665)       0:00:16.401 ***********",
                                "changed: [instance] => (item={'path': '/etc/containerd'})",
                                "changed: [instance] => (item={'path': '/var/lib/containerd'})",
                                "changed: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Tuesday 19 May 2026  16:28:53 +0000 (0:00:00.601)       0:00:17.003 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 19 May 2026  16:28:54 +0000 (0:00:00.603)       0:00:17.606 ***********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************",
                                "Tuesday 19 May 2026  16:28:54 +0000 (0:00:00.008)       0:00:17.615 ***********",
                                "ok: [instance]",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Tuesday 19 May 2026  16:28:55 +0000 (0:00:00.961)       0:00:18.577 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Tuesday 19 May 2026  16:28:56 +0000 (0:00:00.476)       0:00:19.053 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:28:56 +0000 (0:00:00.566)       0:00:19.619 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:28:56 +0000 (0:00:00.238)       0:00:19.857 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:28:56 +0000 (0:00:00.062)       0:00:19.920 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:28:57 +0000 (0:00:00.892)       0:00:20.813 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Install AppArmor packages] ******************",
                                "Tuesday 19 May 2026  16:29:02 +0000 (0:00:04.405)       0:00:25.218 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************",
                                "Tuesday 19 May 2026  16:29:03 +0000 (0:00:01.221)       0:00:26.440 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create systemd service file for docker] *****",
                                "Tuesday 19 May 2026  16:29:03 +0000 (0:00:00.412)       0:00:26.852 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create folders for configuration] ***********",
                                "Tuesday 19 May 2026  16:29:04 +0000 (0:00:00.475)       0:00:27.327 ***********",
                                "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] ******",
                                "Tuesday 19 May 2026  16:29:04 +0000 (0:00:00.619)       0:00:27.946 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create docker daemon config file] ***********",
                                "Tuesday 19 May 2026  16:29:05 +0000 (0:00:00.498)       0:00:28.444 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Force any restarts if necessary] ************",
                                "Tuesday 19 May 2026  16:29:05 +0000 (0:00:00.477)       0:00:28.922 ***********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Reload systemd] **************",
                                "Tuesday 19 May 2026  16:29:05 +0000 (0:00:00.011)       0:00:28.933 ***********",
                                "ok: [instance]",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.docker : Restart docker] ******************",
                                "Tuesday 19 May 2026  16:29:06 +0000 (0:00:00.751)       0:00:29.685 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Enable and start service] *******************",
                                "Tuesday 19 May 2026  16:29:07 +0000 (0:00:01.199)       0:00:30.884 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******",
                                "Tuesday 19 May 2026  16:29:08 +0000 (0:00:00.561)       0:00:31.446 ***********",
                                "ok: [instance] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/cephadm/vars/ubuntu-22.04.yml)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Install packages] ********************************",
                                "Tuesday 19 May 2026  16:29:08 +0000 (0:00:00.064)       0:00:31.511 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure services are started] *********************",
                                "Tuesday 19 May 2026  16:29:14 +0000 (0:00:05.549)       0:00:37.060 ***********",
                                "ok: [instance] => (item=chronyd)",
                                "ok: [instance] => (item=sshd)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************",
                                "Tuesday 19 May 2026  16:29:14 +0000 (0:00:00.667)       0:00:37.727 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************",
                                "Tuesday 19 May 2026  16:29:15 +0000 (0:00:00.312)       0:00:38.040 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************",
                                "Tuesday 19 May 2026  16:29:15 +0000 (0:00:00.209)       0:00:38.250 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***",
                                "Tuesday 19 May 2026  16:29:15 +0000 (0:00:00.514)       0:00:38.765 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Get `cephadm ls` status] *****************************",
                                "Tuesday 19 May 2026  16:29:16 +0000 (0:00:00.372)       0:00:39.137 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Parse the `cephadm ls` output] ***********************",
                                "Tuesday 19 May 2026  16:29:17 +0000 (0:00:01.750)       0:00:40.887 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Assimilate existing configs in `ceph.conf`] **********",
                                "Tuesday 19 May 2026  16:29:17 +0000 (0:00:00.060)       0:00:40.948 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Adopt monitor to cluster] ****************************",
                                "Tuesday 19 May 2026  16:29:17 +0000 (0:00:00.045)       0:00:40.993 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Adopt manager to cluster] ****************************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.045)       0:00:41.038 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Enable \"cephadm\" mgr module] *************************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.042)       0:00:41.081 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Set orchestrator backend to \"cephadm\"] ***************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.042)       0:00:41.123 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Use `cephadm` user for cephadm] **********************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.050)       0:00:41.173 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Generate \"cephadm\" key] ******************************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.041)       0:00:41.215 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Set Ceph Monitor IP address] *************************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.041)       0:00:41.257 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Check if any node is bootstrapped] *******************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.119)       0:00:41.376 ***********",
                                "ok: [instance] => (item=instance)",
                                "",
                                "TASK [vexxhost.ceph.mon : Select pre-existing bootstrap node if exists] ********",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.224)       0:00:41.600 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Bootstrap cluster] ***********************************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.052)       0:00:41.653 ***********",
                                "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\"] *************",
                                "Tuesday 19 May 2026  16:29:18 +0000 (0:00:00.076)       0:00:41.730 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Include extra configuration values] ******************",
                                "Tuesday 19 May 2026  16:29:19 +0000 (0:00:00.349)       0:00:42.079 ***********",
                                "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] *******************************",
                                "Tuesday 19 May 2026  16:29:19 +0000 (0:00:00.736)       0:00:42.815 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Remove temporary file for \"ceph.conf\"] ***************",
                                "Tuesday 19 May 2026  16:31:41 +0000 (0:02:22.090)       0:03:04.906 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Set bootstrap node] **********************************",
                                "Tuesday 19 May 2026  16:31:42 +0000 (0:00:00.223)       0:03:05.129 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Install Ceph host] *******************************************************",
                                "Tuesday 19 May 2026  16:31:42 +0000 (0:00:00.050)       0:03:05.180 ***********",
                                "included: vexxhost.ceph.cephadm_host for instance",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******",
                                "Tuesday 19 May 2026  16:31:42 +0000 (0:00:00.112)       0:03:05.292 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***",
                                "Tuesday 19 May 2026  16:31:43 +0000 (0:00:01.612)       0:03:06.905 ***********",
                                "ok: [instance] => (item=instance)",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********",
                                "Tuesday 19 May 2026  16:31:43 +0000 (0:00:00.058)       0:03:06.963 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************",
                                "Tuesday 19 May 2026  16:31:44 +0000 (0:00:00.460)       0:03:07.423 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Configure \"mon\" label for monitors] ******************",
                                "Tuesday 19 May 2026  16:31:46 +0000 (0:00:02.172)       0:03:09.596 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mon : Validate monitor exist] ******************************",
                                "Tuesday 19 May 2026  16:31:48 +0000 (0:00:01.714)       0:03:11.310 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Install Ceph host] *******************************************************",
                                "Tuesday 19 May 2026  16:31:59 +0000 (0:00:11.257)       0:03:22.568 ***********",
                                "included: vexxhost.ceph.cephadm_host for instance",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******",
                                "Tuesday 19 May 2026  16:31:59 +0000 (0:00:00.077)       0:03:22.645 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***",
                                "Tuesday 19 May 2026  16:31:59 +0000 (0:00:00.056)       0:03:22.702 ***********",
                                "skipping: [instance] => (item=instance)",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********",
                                "Tuesday 19 May 2026  16:31:59 +0000 (0:00:00.051)       0:03:22.753 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************",
                                "Tuesday 19 May 2026  16:32:00 +0000 (0:00:00.267)       0:03:23.020 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mgr : Configure \"mgr\" label for managers] ******************",
                                "Tuesday 19 May 2026  16:32:02 +0000 (0:00:02.074)       0:03:25.095 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mgr : Validate manager exist] ******************************",
                                "Tuesday 19 May 2026  16:32:03 +0000 (0:00:01.729)       0:03:26.825 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.mgr : Enable the Ceph Manager prometheus module] ***********",
                                "Tuesday 19 May 2026  16:32:05 +0000 (0:00:01.663)       0:03:28.488 ***********",
                                "ok: [instance]",
                                "",
                                "PLAY [Deploy Ceph OSDs] ********************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:32:07 +0000 (0:00:02.497)       0:03:30.986 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:32:08 +0000 (0:00:00.947)       0:03:31.934 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:32:09 +0000 (0:00:00.203)       0:03:32.138 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Tuesday 19 May 2026  16:32:09 +0000 (0:00:00.040)       0:03:32.178 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:32:09 +0000 (0:00:00.221)       0:03:32.400 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.3.0/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:32:09 +0000 (0:00:00.057)       0:03:32.458 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:32:09 +0000 (0:00:00.311)       0:03:32.769 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:32:09 +0000 (0:00:00.048)       0:03:32.818 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:32:09 +0000 (0:00:00.052)       0:03:32.871 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:32:10 +0000 (0:00:00.212)       0:03:33.084 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:32:11 +0000 (0:00:01.328)       0:03:34.412 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.1.4/containerd-2.1.4-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:32:11 +0000 (0:00:00.070)       0:03:34.482 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:32:11 +0000 (0:00:00.354)       0:03:34.837 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Tuesday 19 May 2026  16:32:14 +0000 (0:00:02.927)       0:03:37.764 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Tuesday 19 May 2026  16:32:14 +0000 (0:00:00.034)       0:03:37.799 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Tuesday 19 May 2026  16:32:14 +0000 (0:00:00.034)       0:03:37.833 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Tuesday 19 May 2026  16:32:14 +0000 (0:00:00.037)       0:03:37.871 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Tuesday 19 May 2026  16:32:16 +0000 (0:00:01.275)       0:03:39.147 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Tuesday 19 May 2026  16:32:16 +0000 (0:00:00.431)       0:03:39.578 ***********",
                                "ok: [instance] => (item={'path': '/etc/containerd'})",
                                "ok: [instance] => (item={'path': '/var/lib/containerd'})",
                                "ok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Tuesday 19 May 2026  16:32:17 +0000 (0:00:00.547)       0:03:40.125 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 19 May 2026  16:32:17 +0000 (0:00:00.479)       0:03:40.605 ***********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Tuesday 19 May 2026  16:32:17 +0000 (0:00:00.009)       0:03:40.615 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:32:17 +0000 (0:00:00.354)       0:03:40.969 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:32:18 +0000 (0:00:00.232)       0:03:41.202 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:32:18 +0000 (0:00:00.053)       0:03:41.255 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:32:18 +0000 (0:00:00.365)       0:03:41.620 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Install AppArmor packages] ******************",
                                "Tuesday 19 May 2026  16:32:21 +0000 (0:00:03.105)       0:03:44.726 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Ensure group \"docker\" exists] ***************",
                                "Tuesday 19 May 2026  16:32:23 +0000 (0:00:01.318)       0:03:46.044 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create systemd service file for docker] *****",
                                "Tuesday 19 May 2026  16:32:23 +0000 (0:00:00.205)       0:03:46.250 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create folders for configuration] ***********",
                                "Tuesday 19 May 2026  16:32:23 +0000 (0:00:00.478)       0:03:46.728 ***********",
                                "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] ******",
                                "Tuesday 19 May 2026  16:32:24 +0000 (0:00:00.600)       0:03:47.328 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Create docker daemon config file] ***********",
                                "Tuesday 19 May 2026  16:32:24 +0000 (0:00:00.434)       0:03:47.763 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.docker : Force any restarts if necessary] ************",
                                "Tuesday 19 May 2026  16:32:25 +0000 (0:00:00.447)       0:03:48.210 ***********",
                                "",
                                "TASK [vexxhost.containers.docker : Enable and start service] *******************",
                                "Tuesday 19 May 2026  16:32:25 +0000 (0:00:00.006)       0:03:48.217 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Gather variables for each operating system] ******",
                                "Tuesday 19 May 2026  16:32:25 +0000 (0:00:00.361)       0:03:48.579 ***********",
                                "ok: [instance] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/ceph/roles/cephadm/vars/ubuntu-22.04.yml)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Install packages] ********************************",
                                "Tuesday 19 May 2026  16:32:25 +0000 (0:00:00.062)       0:03:48.641 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure services are started] *********************",
                                "Tuesday 19 May 2026  16:32:26 +0000 (0:00:01.307)       0:03:49.949 ***********",
                                "ok: [instance] => (item=chronyd)",
                                "ok: [instance] => (item=sshd)",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Download \"cephadm\"] ******************************",
                                "Tuesday 19 May 2026  16:32:27 +0000 (0:00:00.686)       0:03:50.636 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Remove cephadm from old path] ********************",
                                "Tuesday 19 May 2026  16:32:27 +0000 (0:00:00.300)       0:03:50.936 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Ensure \"cephadm\" user is present] ****************",
                                "Tuesday 19 May 2026  16:32:28 +0000 (0:00:00.202)       0:03:51.139 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm : Allow \"cephadm\" user to have passwordless sudo] ***",
                                "Tuesday 19 May 2026  16:32:28 +0000 (0:00:00.244)       0:03:51.383 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get monitor status] **********************************",
                                "Tuesday 19 May 2026  16:32:28 +0000 (0:00:00.215)       0:03:51.599 ***********",
                                "ok: [instance] => (item=instance)",
                                "",
                                "TASK [vexxhost.ceph.osd : Select admin host] ***********************************",
                                "Tuesday 19 May 2026  16:32:28 +0000 (0:00:00.230)       0:03:51.830 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get `cephadm ls` status] *****************************",
                                "Tuesday 19 May 2026  16:32:28 +0000 (0:00:00.053)       0:03:51.884 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Parse the `cephadm ls` output] ***********************",
                                "Tuesday 19 May 2026  16:32:33 +0000 (0:00:05.106)       0:03:56.990 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Install Ceph host] *******************************************************",
                                "Tuesday 19 May 2026  16:32:34 +0000 (0:00:00.053)       0:03:57.044 ***********",
                                "included: vexxhost.ceph.cephadm_host for instance",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Get public SSH key for \"cephadm\" user] ******",
                                "Tuesday 19 May 2026  16:32:34 +0000 (0:00:00.075)       0:03:57.119 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set fact with public SSH key for \"cephadm\" user] ***",
                                "Tuesday 19 May 2026  16:32:34 +0000 (0:00:00.044)       0:03:57.163 ***********",
                                "skipping: [instance] => (item=instance)",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Set authorized key for \"cephadm\"] ***********",
                                "Tuesday 19 May 2026  16:32:34 +0000 (0:00:00.051)       0:03:57.214 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.cephadm_host : Add new host to Ceph] ***********************",
                                "Tuesday 19 May 2026  16:32:34 +0000 (0:00:00.278)       0:03:57.492 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Adopt OSDs to cluster] *******************************",
                                "Tuesday 19 May 2026  16:32:36 +0000 (0:00:02.108)       0:03:59.601 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Wait until OSD added to cephadm] *********************",
                                "Tuesday 19 May 2026  16:32:36 +0000 (0:00:00.035)       0:03:59.636 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Ensure all OSDs are non-legacy] **********************",
                                "Tuesday 19 May 2026  16:32:36 +0000 (0:00:00.035)       0:03:59.672 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get `ceph-volume lvm list` status] *******************",
                                "Tuesday 19 May 2026  16:32:42 +0000 (0:00:05.395)       0:04:05.068 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Install OSDs] ****************************************",
                                "Tuesday 19 May 2026  16:32:52 +0000 (0:00:10.324)       0:04:15.392 ***********",
                                "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] ****************************************",
                                "Tuesday 19 May 2026  16:34:23 +0000 (0:01:30.679)       0:05:46.072 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Mark require osd release] ****************************",
                                "Tuesday 19 May 2026  16:34:25 +0000 (0:00:01.959)       0:05:48.031 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Wait for all OSD to be running] **********************",
                                "Tuesday 19 May 2026  16:34:26 +0000 (0:00:01.716)       0:05:49.748 ***********",
                                "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] *********************************",
                                "Tuesday 19 May 2026  16:34:26 +0000 (0:00:00.068)       0:05:49.816 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Get `ceph orch ps`] **********************************",
                                "Tuesday 19 May 2026  16:34:26 +0000 (0:00:00.053)       0:05:49.870 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : OSD daemon list] *************************************",
                                "Tuesday 19 May 2026  16:34:28 +0000 (0:00:01.809)       0:05:51.680 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Fail if any OSD not running] *************************",
                                "Tuesday 19 May 2026  16:34:28 +0000 (0:00:00.055)       0:05:51.735 ***********",
                                "skipping: [instance] => (item=1)",
                                "skipping: [instance] => (item=1)",
                                "skipping: [instance] => (item=1)",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.ceph.osd : Fail if any duplicate OSD ID] ************************",
                                "Tuesday 19 May 2026  16:34:28 +0000 (0:00:00.049)       0:05:51.784 ***********",
                                "skipping: [instance]",
                                "",
                                "PLAY [all] *********************************************************************",
                                "",
                                "TASK [Ensure RBD kernel module is loaded] **************************************",
                                "Tuesday 19 May 2026  16:34:28 +0000 (0:00:00.170)       0:05:51.955 ***********",
                                "changed: [instance]",
                                "",
                                "PLAY [all] *********************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:34:29 +0000 (0:00:00.326)       0:05:52.281 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.atmosphere.sysctl : Configure sysctl values] ********************",
                                "Tuesday 19 May 2026  16:34:30 +0000 (0:00:01.013)       0:05:53.294 ***********",
                                "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] ***",
                                "Tuesday 19 May 2026  16:34:35 +0000 (0:00:04.832)       0:05:58.127 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.atmosphere.ethtool : Install persistent \"ethtool\" tuning] *******",
                                "Tuesday 19 May 2026  16:34:35 +0000 (0:00:00.218)       0:05:58.346 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.atmosphere.ethtool : Run \"ethtool\" tuning] **********************",
                                "Tuesday 19 May 2026  16:34:35 +0000 (0:00:00.451)       0:05:58.797 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [Set a fact with the \"atmosphere_images\" for other plays] *****************",
                                "Tuesday 19 May 2026  16:34:36 +0000 (0:00:00.256)       0:05:59.054 ***********",
                                "ok: [instance]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:34:36 +0000 (0:00:00.046)       0:05:59.100 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Tuesday 19 May 2026  16:34:37 +0000 (0:00:00.918)       0:06:00.019 ***********",
                                "changed: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Tuesday 19 May 2026  16:34:37 +0000 (0:00:00.211)       0:06:00.230 ***********",
                                "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] ****",
                                "Tuesday 19 May 2026  16:34:38 +0000 (0:00:00.883)       0:06:01.114 ***********",
                                "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] *********",
                                "Tuesday 19 May 2026  16:34:38 +0000 (0:00:00.561)       0:06:01.675 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Tuesday 19 May 2026  16:34:38 +0000 (0:00:00.188)       0:06:01.864 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Tuesday 19 May 2026  16:34:39 +0000 (0:00:00.188)       0:06:02.052 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Tuesday 19 May 2026  16:34:39 +0000 (0:00:00.036)       0:06:02.088 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Tuesday 19 May 2026  16:34:39 +0000 (0:00:00.037)       0:06:02.126 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Tuesday 19 May 2026  16:34:39 +0000 (0:00:00.523)       0:06:02.650 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Tuesday 19 May 2026  16:34:39 +0000 (0:00:00.198)       0:06:02.848 ***********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Tuesday 19 May 2026  16:34:39 +0000 (0:00:00.067)       0:06:02.916 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:34:40 +0000 (0:00:00.930)       0:06:03.846 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:34:41 +0000 (0:00:00.233)       0:06:04.080 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Tuesday 19 May 2026  16:34:41 +0000 (0:00:00.052)       0:06:04.132 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:34:41 +0000 (0:00:00.221)       0:06:04.354 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.3.0/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:34:41 +0000 (0:00:00.057)       0:06:04.412 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:34:41 +0000 (0:00:00.309)       0:06:04.721 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:34:41 +0000 (0:00:00.049)       0:06:04.771 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Tuesday 19 May 2026  16:34:41 +0000 (0:00:00.226)       0:06:04.998 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:34:43 +0000 (0:00:01.116)       0:06:06.114 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.1.4/containerd-2.1.4-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:34:43 +0000 (0:00:00.070)       0:06:06.185 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Tuesday 19 May 2026  16:34:43 +0000 (0:00:00.342)       0:06:06.527 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Tuesday 19 May 2026  16:34:45 +0000 (0:00:01.899)       0:06:08.427 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Tuesday 19 May 2026  16:34:45 +0000 (0:00:00.034)       0:06:08.461 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Tuesday 19 May 2026  16:34:45 +0000 (0:00:00.037)       0:06:08.499 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Tuesday 19 May 2026  16:34:45 +0000 (0:00:00.031)       0:06:08.530 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Tuesday 19 May 2026  16:34:46 +0000 (0:00:01.275)       0:06:09.805 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Tuesday 19 May 2026  16:34:47 +0000 (0:00:00.502)       0:06:10.308 ***********",
                                "ok: [instance] => (item={'path': '/etc/containerd'})",
                                "ok: [instance] => (item={'path': '/var/lib/containerd'})",
                                "ok: [instance] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Tuesday 19 May 2026  16:34:47 +0000 (0:00:00.581)       0:06:10.890 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Tuesday 19 May 2026  16:34:48 +0000 (0:00:00.518)       0:06:11.408 ***********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Tuesday 19 May 2026  16:34:48 +0000 (0:00:00.009)       0:06:11.417 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Tuesday 19 May 2026  16:34:48 +0000 (0:00:00.374)       0:06:11.792 ***********",
                                "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] ***",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.595)       0:06:12.387 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.037)       0:06:12.425 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.036)       0:06:12.461 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.040)       0:06:12.502 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.042)       0:06:12.545 ***********",
                                "skipping: [instance]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.054)       0:06:12.599 ***********",
                                "ok: [instance]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.210)       0:06:12.809 ***********",
                                "ok: [instance] => {",
                                "    \"msg\": \"https://cdn.dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Tuesday 19 May 2026  16:34:49 +0000 (0:00:00.047)       0:06:12.857 ***********",
                                "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=147  changed=31   unreachable=0    failed=1    skipped=38   rescued=0    ignored=2",
                                "",
                                "Tuesday 19 May 2026  16:35:11 +0000 (0:00:21.225)       0:06:34.083 ***********",
                                "===============================================================================",
                                "vexxhost.ceph.mon : Run Bootstrap coomand ----------------------------- 142.09s",
                                "vexxhost.ceph.osd : Install OSDs --------------------------------------- 90.68s",
                                "vexxhost.containers.download_artifact : Download item ------------------ 21.23s",
                                "vexxhost.ceph.mon : Validate monitor exist ----------------------------- 11.26s",
                                "vexxhost.ceph.osd : Get `ceph-volume lvm list` status ------------------ 10.32s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 6.17s",
                                "vexxhost.ceph.cephadm : Install packages -------------------------------- 5.55s",
                                "vexxhost.ceph.osd : Ensure all OSDs are non-legacy ---------------------- 5.40s",
                                "vexxhost.ceph.osd : Get `cephadm ls` status ----------------------------- 5.11s",
                                "vexxhost.atmosphere.sysctl : Configure sysctl values -------------------- 4.83s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 4.41s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.11s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.93s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.85s",
                                "vexxhost.ceph.mgr : Enable the Ceph Manager prometheus module ----------- 2.50s",
                                "vexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.17s",
                                "vexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.11s",
                                "vexxhost.ceph.cephadm_host : Add new host to Ceph ----------------------- 2.07s",
                                "vexxhost.ceph.osd : Get mon dump ---------------------------------------- 1.96s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.90s",
                                "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-0010-455c-b683-000000000006-1-instance"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:11.962338Z",
                            "start": "2026-05-19T16:27:00.643516Z"
                        },
                        "id": "0242ac17-0010-455c-b683-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-05-19T16:35:23.014111Z",
                    "start": "2026-05-19T16:35:12.758926Z"
                },
                "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:13.171110Z",
                            "start": "2026-05-19T16:35:12.773390Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.108023",
                            "end": "2026-05-19 16:35:13.697038",
                            "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-0010-6045-6d07-00000000000d-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:13.589015",
                            "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-0010-6045-6d07-00000000000d-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:13.744976Z",
                            "start": "2026-05-19T16:35:13.197018Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.138:/tmp/logs/system /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/tmp/logs/system",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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-0010-6045-6d07-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:14.384950Z",
                            "start": "2026-05-19T16:35:13.751024Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:14.778649Z",
                            "start": "2026-05-19T16:35:14.394162Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.006321",
                            "end": "2026-05-19 16:35:14.995724",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      # get all Helm releases including pending and failed releases\n      for release in $(helm list --all --short --namespace $namespace); do\n              # Make respective directories only when a Helm release actually exists in the namespace\n              # to prevent uploading a bunch of empty directories for namespaces without a Helm release.\n              mkdir -p /tmp/logs/helm/releases/$namespace\n              mkdir -p /tmp/logs/helm/values/$namespace\n\n              helm status $release --namespace $namespace >> /tmp/logs/helm/releases/$namespace/$release.txt\n              helm get values $release --namespace $namespace --all >> /tmp/logs/helm/values/$namespace/$release.yaml\n      done\ndone",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-6045-6d07-000000000014-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:14.989403",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/bin/bash: line 3: kubectl: command not found",
                            "stdout_lines": [
                                "/bin/bash: line 3: kubectl: command not found"
                            ],
                            "zuul_log_id": "0242ac17-0010-6045-6d07-000000000014-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:15.327647Z",
                            "start": "2026-05-19T16:35:14.810218Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.138:/tmp/logs/helm /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/tmp/logs/helm",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ helm/\ncd+++++++++ helm/releases/\ncd+++++++++ helm/values/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ helm/",
                                "cd+++++++++ helm/releases/",
                                "cd+++++++++ helm/values/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:15.863819Z",
                            "start": "2026-05-19T16:35:15.362340Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:16.091911Z",
                            "start": "2026-05-19T16:35:15.874270Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.026585",
                            "end": "2026-05-19 16:35:16.324599",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace\nexport PARALLELISM_FACTOR=2\n\nfunction list_objects () {\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"$@\"' _ {}\n}\nexport -f list_objects\n\nfunction name_objects () {\n  export OBJECT=$1\n  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${OBJECT} ${1#*/}\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export OBJECT=${input[0]}\n  export NAME=${input[1]#*/}\n  echo \"${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/cluster/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nlist_objects |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-6045-6d07-00000000001a-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:16.298014",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvironment: line 1: kubectl: command not found\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "environment: line 1: kubectl: command not found",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value"
                            ],
                            "zuul_log_id": "0242ac17-0010-6045-6d07-00000000001a-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:16.637452Z",
                            "start": "2026-05-19T16:35:16.120312Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:16.858416Z",
                            "start": "2026-05-19T16:35:16.643417Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.009682",
                            "end": "2026-05-19 16:35:17.074345",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets\nexport PARALLELISM_FACTOR=2\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\n\nfunction list_namespaced_objects () {\n  export NAMESPACE=$1\n  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} $@\"' _ {}\n}\nexport -f list_namespaced_objects\n\nfunction name_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo \"${NAMESPACE} ${OBJECT} $@\"' _ {}\n}\nexport -f name_objects\n\nfunction get_objects () {\n  input=($1)\n  export NAMESPACE=${input[0]}\n  export OBJECT=${input[1]}\n  export NAME=${input[2]#*/}\n  echo \"${NAMESPACE}/${OBJECT}/${NAME}\"\n  DIR=\"/tmp/logs/objects/namespaced/${NAMESPACE}/${OBJECT}\"\n  mkdir -p ${DIR}\n  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > \"${DIR}/${NAME}.yaml\"\n  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > \"${DIR}/${NAME}.txt\"\n}\nexport -f get_objects\n\nget_namespaces |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects \"$@\"' _ {} |  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-6045-6d07-00000000001c-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:17.064663",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "environment: line 5: kubectl: command not found\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                            "stdout_lines": [
                                "environment: line 5: kubectl: command not found",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value"
                            ],
                            "zuul_log_id": "0242ac17-0010-6045-6d07-00000000001c-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:17.403416Z",
                            "start": "2026-05-19T16:35:16.884188Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.138:/tmp/logs/objects /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/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-0010-6045-6d07-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:17.896463Z",
                            "start": "2026-05-19T16:35:17.408174Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:18.106036Z",
                            "start": "2026-05-19T16:35:17.912008Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:18.320059Z",
                            "start": "2026-05-19T16:35:18.111974Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.008218",
                            "end": "2026-05-19 16:35:18.539493",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nfunction get_namespaces () {\n  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'\n}\nfunction get_pods () {\n  NAMESPACE=$1\n  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -I {} echo ${NAMESPACE} {}\n}\nexport -f get_pods\nfunction get_pod_logs () {\n  NAMESPACE=${1% *}\n  POD=${1#* }\n  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')\n  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')\n  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do\n    echo \"${NAMESPACE}/${POD}/${CONTAINER}\"\n    mkdir -p \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}\"\n    mkdir -p \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}\"\n    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n  done\n}\nexport -f get_pod_logs\nget_namespaces |  xargs -r -I {} bash -c 'get_pods \"$@\"' _ {} |  xargs -r -I {} bash -c 'get_pod_logs \"$@\"' _ {}",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-6045-6d07-000000000023-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:18.531275",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "environment: line 3: kubectl: command not found",
                            "stdout_lines": [
                                "environment: line 3: kubectl: command not found"
                            ],
                            "zuul_log_id": "0242ac17-0010-6045-6d07-000000000023-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:18.862826Z",
                            "start": "2026-05-19T16:35:18.344258Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.138:/tmp/logs/pod-logs /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/tmp/logs/pod-logs",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ pod-logs/\ncd+++++++++ pod-logs/failed-pods/\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ pod-logs/",
                                "cd+++++++++ pod-logs/failed-pods/"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:19.340165Z",
                            "start": "2026-05-19T16:35:18.868785Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:19.549414Z",
                            "start": "2026-05-19T16:35:19.351977Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.038101",
                            "end": "2026-05-19 16:35:19.799898",
                            "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-0010-6045-6d07-000000000029-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:19.761797",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/bin/bash: line 2: kubectl: command not found",
                            "stdout_lines": [
                                "/bin/bash: line 2: kubectl: command not found"
                            ],
                            "zuul_log_id": "0242ac17-0010-6045-6d07-000000000029-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:20.094723Z",
                            "start": "2026-05-19T16:35:19.576570Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.037531",
                            "end": "2026-05-19 16:35:20.358930",
                            "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-0010-6045-6d07-00000000002a-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:20.321399",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/bin/bash: line 2: kubectl: command not found\nceph-mgr endpoints: ",
                            "stdout_lines": [
                                "/bin/bash: line 2: kubectl: command not found",
                                "ceph-mgr endpoints: "
                            ],
                            "zuul_log_id": "0242ac17-0010-6045-6d07-00000000002a-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:20.641404Z",
                            "start": "2026-05-19T16:35:20.122990Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.038541",
                            "end": "2026-05-19 16:35:20.929491",
                            "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-0010-6045-6d07-00000000002b-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-05-19 16:35:20.890950",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/bin/bash: line 4: kubectl: command not found",
                            "stdout_lines": [
                                "/bin/bash: line 4: kubectl: command not found"
                            ],
                            "zuul_log_id": "0242ac17-0010-6045-6d07-00000000002b-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:21.226981Z",
                            "start": "2026-05-19T16:35:20.666793Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.138:/tmp/logs/prometheus /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/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-0010-6045-6d07-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:21.714655Z",
                            "start": "2026-05-19T16:35:21.233802Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-0010-6045-6d07-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:21.954231Z",
                            "start": "2026-05-19T16:35:21.725808Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.007498",
                            "end": "2026-05-19 16:35:22.168093",
                            "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-0010-6045-6d07-000000000031-1-instance",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-05-19 16:35:22.160595",
                            "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-0010-6045-6d07-000000000031-1-instance"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6045-6d07-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:22.497027Z",
                            "start": "2026-05-19T16:35:21.981008Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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.138:/tmp/logs/selenium /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/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-0010-6045-6d07-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:23.014111Z",
                            "start": "2026-05-19T16:35:22.504065Z"
                        },
                        "id": "0242ac17-0010-6045-6d07-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-05-19T16:35:27.040237Z",
                    "start": "2026-05-19T16:35:23.845183Z"
                },
                "id": "0242ac17-0010-1b50-522e-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-0010-1b50-522e-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:23.903059Z",
                            "start": "2026-05-19T16:35:23.857419Z"
                        },
                        "id": "0242ac17-0010-1b50-522e-000000000008",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "instance": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1b50-522e-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:23.958561Z",
                            "start": "2026-05-19T16:35:23.912705Z"
                        },
                        "id": "0242ac17-0010-1b50-522e-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/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1b50-522e-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:24.799023Z",
                            "start": "2026-05-19T16:35:23.964626Z"
                        },
                        "id": "0242ac17-0010-1b50-522e-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.138:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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.138:/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1b50-522e-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:26.354050Z",
                            "start": "2026-05-19T16:35:24.808152Z"
                        },
                        "id": "0242ac17-0010-1b50-522e-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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/artifacts/* /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.008144",
                                    "end": "2026-05-19 16:35:26.763650",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/artifacts/* /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs/artifacts\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_no_log": false,
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-05-19 16:35:26.755506",
                                    "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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/docs/* /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.006554",
                                    "end": "2026-05-19 16:35:26.993552",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/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/e60d8b2f8b684cdb8d8c60732f16abe3/work/docs/* /var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/work/logs/docs\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_no_log": false,
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-05-19 16:35:26.986998",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1b50-522e-00000000000f",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:27.040237Z",
                            "start": "2026-05-19T16:35:26.369858Z"
                        },
                        "id": "0242ac17-0010-1b50-522e-000000000011",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-05-19T16:35:27.457483Z",
                    "start": "2026-05-19T16:35:27.050221Z"
                },
                "id": "0242ac17-0010-1b50-522e-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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC2cquDzRpCq/FGPfjjdRWFKeUOcLnyuAp6MOtQi8ehY38/2OnUsAM+6WaZrygazFUN9/d1U6ATVqWa/aCIG6960n+oLubmsnVP1opEl5/LiyPzKUU03MgIZj8mQyk2v6Ust26+wDOCIX5uJZvZ6u4GJ/t8vRXxPHmyNIHP8fXkorwUxz4UyV+mEGH0W/sygGXfi6v7Egh4g/88AGU2nVBVRrhFIm0XZw4qF4+FS79oU33OJiCn0ZnyWHBPhqQlWMn18pDoQU8NMzp3Dh3J3KmwEz2+5S80clKic5kBQj2CWnGsbbtlZ/ttxab6b4BV0YVsPPouBbm6JCyVZiI5MHe1lxU9OPG0wizmrio3n2UV2AFP/09Lb10VVmAnHIu/Ni+xEjqDC40Mux7VkIaW47nkf7kkEQHwMRX6qgJ+evXDzfIHzN73Twkr5eICgOCE59fCt+zdguihA7398IyZeCBEH2mbCJyfYouFrJfJ2At/L6s0w773OwkSRPk+QLjr3ks= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC2cquDzRpCq/FGPfjjdRWFKeUOcLnyuAp6MOtQi8ehY38/2OnUsAM+6WaZrygazFUN9/d1U6ATVqWa/aCIG6960n+oLubmsnVP1opEl5/LiyPzKUU03MgIZj8mQyk2v6Ust26+wDOCIX5uJZvZ6u4GJ/t8vRXxPHmyNIHP8fXkorwUxz4UyV+mEGH0W/sygGXfi6v7Egh4g/88AGU2nVBVRrhFIm0XZw4qF4+FS79oU33OJiCn0ZnyWHBPhqQlWMn18pDoQU8NMzp3Dh3J3KmwEz2+5S80clKic5kBQj2CWnGsbbtlZ/ttxab6b4BV0YVsPPouBbm6JCyVZiI5MHe1lxU9OPG0wizmrio3n2UV2AFP/09Lb10VVmAnHIu/Ni+xEjqDC40Mux7VkIaW47nkf7kkEQHwMRX6qgJ+evXDzfIHzN73Twkr5eICgOCE59fCt+zdguihA7398IyZeCBEH2mbCJyfYouFrJfJ2At/L6s0w773OwkSRPk+QLjr3ks= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-1b50-522e-000000000016",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/e60d8b2f8b684cdb8d8c60732f16abe3/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-05-19T16:35:27.457483Z",
                            "start": "2026-05-19T16:35:27.057871Z"
                        },
                        "id": "0242ac17-0010-1b50-522e-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
}
]
