[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-26T23:55:34.759919Z",
                    "start": "2026-10-26T23:55:32.337242Z"
                },
                "id": "0242ac17-0010-515f-65c6-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-10-26",
                                    "day": "26",
                                    "epoch": "1793058933",
                                    "epoch_int": "1793058933",
                                    "hour": "23",
                                    "iso8601": "2026-10-26T23:55:33Z",
                                    "iso8601_basic": "20261026T235533110868",
                                    "iso8601_basic_short": "20261026T235533",
                                    "iso8601_micro": "2026-10-26T23:55:33.110868Z",
                                    "minute": "55",
                                    "month": "10",
                                    "second": "33",
                                    "time": "23:55:33",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Monday",
                                    "weekday_number": "1",
                                    "weeknumber": "43",
                                    "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/0a93bb11d6c64d9fadaf9939cd1bb104/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work",
                                    "HOSTNAME": "2d72f0692154",
                                    "KUBECONFIG": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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": "1525791",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-H9BbHSiXRYjg/agent.1525790",
                                    "TMP": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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": 3.0830078125,
                                    "1m": 3.18310546875,
                                    "5m": 3.0634765625
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 3490,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 12028,
                                        "used": 20062
                                    },
                                    "real": {
                                        "free": 3490,
                                        "total": 32090,
                                        "used": 28600
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 7688453,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913127,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491903488,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688445,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913135,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491870720,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688445,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913135,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491870720,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688445,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913135,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491870720,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688421,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913159,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491772416,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688405,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913175,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/kube",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491706880,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688400,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913180,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491686400,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688397,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913183,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491674112,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688397,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913183,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491674112,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688381,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913199,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491608576,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 22153662,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 241787055,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 22530371,
                                        "inode_total": 67108864,
                                        "inode_used": 44578493,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 90741399552,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7688357,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 32913223,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16540184,
                                        "inode_total": 20643840,
                                        "inode_used": 4103656,
                                        "mount": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 31491510272,
                                        "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": 56722385,
                                "ansible_user_dir": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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-10-26T23:55:33.187903Z",
                            "start": "2026-10-26T23:55:32.344357Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000002a",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:33.221461Z",
                            "start": "2026-10-26T23:55:33.195578Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000008",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "0a9/oss/0a93bb11d6c64d9fadaf9939cd1bb104"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000054",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:33.281957Z",
                            "start": "2026-10-26T23:55:33.241270Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000056",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.18\nJob: atmosphere-common-molecule-secretgen-controller\nPipeline: check\nExecutor: 2d72f0692154\nTriggered by: https://github.com/vexxhost/atmosphere.common/pull/102\nEvent ID: 08d13ac0-d198-11f1-9753-b817f6fe1168\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:33.345843Z",
                            "start": "2026-10-26T23:55:33.292978Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000009",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: controller\nHostname: np0000196491\nUsername: zuul\nDistro: Ubuntu 24.04\nProvider: yul1\nRegion: ca-ymq-1\nLabel: ubuntu-noble\nProduct Name: OpenStack Nova\nInterface IP: 162.253.55.113\n",
                                    "zj_item": "controller"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:33.438803Z",
                            "start": "2026-10-26T23:55:33.351088Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000000a",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:33.843660Z",
                            "start": "2026-10-26T23:55:33.451335Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000000f",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "37c2a9f7827a05fce2fb21bd60e87c2129c93c73",
                            "dest": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "37c2a9f7827a05fce2fb21bd60e87c2129c93c73",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/.ansible/tmp/ansible-tmp-1793058933.8831787-84-273636237097889/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "83f631905dae73fe080ec212b797cfaf",
                            "mode": "0644",
                            "owner": "root",
                            "size": 356113,
                            "src": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/.ansible/tmp/ansible-tmp-1793058933.8831787-84-273636237097889/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:34.759919Z",
                            "start": "2026-10-26T23:55:33.849240Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000010",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-10-26T23:55:44.541798Z",
                    "start": "2026-10-26T23:55:34.770850Z"
                },
                "id": "0242ac17-0010-515f-65c6-000000000011",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "stat",
                            "changed": false,
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:35.025061Z",
                            "start": "2026-10-26T23:55:34.786432Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000018",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:35.073510Z",
                            "start": "2026-10-26T23:55:35.036198Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000019",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.963064",
                            "end": "2026-10-26 23:55:36.467701",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_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-515f-65c6-00000000009c-0-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:55:35.504637",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa.pub\nThe key fingerprint is:\nSHA256:MTvDPOZfCO6lB43gci2Jiaa7W3F3BE85B68pM/oGMOU zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|      . oo       |\n|    .  +o..      |\n|   o    =o.      |\n|  o E .+ *       |\n|  .+.+=+So       |\n|  oo=o=O+=..     |\n| o. .+ .o.o .    |\n|..   ... +..     |\n|++   .. o..      |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:MTvDPOZfCO6lB43gci2Jiaa7W3F3BE85B68pM/oGMOU zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|      . oo       |",
                                "|    .  +o..      |",
                                "|   o    =o.      |",
                                "|  o E .+ *       |",
                                "|  .+.+=+So       |",
                                "|  oo=o=O+=..     |",
                                "| o. .+ .o.o .    |",
                                "|..   ... +..     |",
                                "|++   .. o..      |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0010-515f-65c6-00000000009c-0-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:36.507737Z",
                            "start": "2026-10-26T23:55:35.105183Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000009c",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:36.553824Z",
                            "start": "2026-10-26T23:55:36.519161Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000009d",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:36.606558Z",
                            "start": "2026-10-26T23:55:36.581978Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000bc",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxkblbHmKzNJXJIAs5UN6EmvsAXhrMBzW+vmSuSDWemF34dsHPThnW5Cz4OEIgQn3QCSNtVULv2+XqOM0LPqRXMElOPXnLU9RIemqIpR4IwkR8QtsraBKd6/ofXWkaZ6JjldJRcvQpBLqVnoSLTZasOPnYBNmQ9/RqanzmfyyVsAOpOjdCuq5bj3iS8zAUDLhl1xn59c2mZGDnmaIS4pOksEmefCUc4CM/icnRQO/ZXtFA5McnNPTAMd9O1ihVHlyJDsJbPzxJua/4uACnQ3bz8WDLvODbQi3RMGbKK8C5JBhtNdtoGmVXQDa2hwzkwKDiiYjq+gB2byawD0+I/brP0WjnI1BAsYZUDNvPS4vPYDf6IbcG3vWdR7cdx6Dknb1mkG6D0Wn4I50S9ENj8XygLMdBR3N1fUqNxEnVG6Q/jNdkCYO4hKRRCwi7Euc0kx/uFSTkRELhvHebZoKmpZpfTNFksPEUZS/E2XgT1O8+p5i0PhO3IQqHCRF6iJcu248= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCxkblbHmKzNJXJIAs5UN6EmvsAXhrMBzW+vmSuSDWemF34dsHPThnW5Cz4OEIgQn3QCSNtVULv2+XqOM0LPqRXMElOPXnLU9RIemqIpR4IwkR8QtsraBKd6/ofXWkaZ6JjldJRcvQpBLqVnoSLTZasOPnYBNmQ9/RqanzmfyyVsAOpOjdCuq5bj3iS8zAUDLhl1xn59c2mZGDnmaIS4pOksEmefCUc4CM/icnRQO/ZXtFA5McnNPTAMd9O1ihVHlyJDsJbPzxJua/4uACnQ3bz8WDLvODbQi3RMGbKK8C5JBhtNdtoGmVXQDa2hwzkwKDiiYjq+gB2byawD0+I/brP0WjnI1BAsYZUDNvPS4vPYDf6IbcG3vWdR7cdx6Dknb1mkG6D0Wn4I50S9ENj8XygLMdBR3N1fUqNxEnVG6Q/jNdkCYO4hKRRCwi7Euc0kx/uFSTkRELhvHebZoKmpZpfTNFksPEUZS/E2XgT1O8+p5i0PhO3IQqHCRF6iJcu248= 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-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:37.152843Z",
                            "start": "2026-10-26T23:55:36.617939Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000bd",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:37.371616Z",
                            "start": "2026-10-26T23:55:37.162584Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000be",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "d2b617c408c4d2e3280c6cb6a1fa91f8d7ce4f4d",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "d2b617c408c4d2e3280c6cb6a1fa91f8d7ce4f4d",
                                    "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-1793058937.426983-190-222659572264923/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "511b9bd45c91fb686ddf471bbe24791a",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1793058937.426983-190-222659572264923/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:37.954686Z",
                            "start": "2026-10-26T23:55:37.381256Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000bf",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "fc091aae125bb02cb1126ba5cdd949745b2a6152",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "fc091aae125bb02cb1126ba5cdd949745b2a6152",
                                    "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-1793058938.0137196-200-159635064811564/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "fe14bf2ec9fff60e2aa404919293b859",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1793058938.0137196-200-159635064811564/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:38.549313Z",
                            "start": "2026-10-26T23:55:37.965326Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000c0",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:38.589657Z",
                            "start": "2026-10-26T23:55:38.563244Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000009e",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/etc/zuul/id_rsa"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-0000000000a3",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:38.937379Z",
                            "start": "2026-10-26T23:55:38.602289Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000a5",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa"
                            ],
                            "delta": "0:00:00.014224",
                            "end": "2026-10-26 23:55:39.243788",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_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-515f-65c6-0000000000ab-0-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:55:39.229564",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/0a93bb11d6c64d9fadaf9939cd1bb104_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0010-515f-65c6-0000000000ab-0-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:39.282611Z",
                            "start": "2026-10-26T23:55:38.961782Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000ab",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:39.657984Z",
                            "start": "2026-10-26T23:55:39.292421Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000ac",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:39.704842Z",
                            "start": "2026-10-26T23:55:39.668034Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-0000000000ad",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:40.133791Z",
                            "start": "2026-10-26T23:55:39.775992Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000001d",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:43.282434Z",
                            "start": "2026-10-26T23:55:40.141335Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-00000000001e",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:43.919364Z",
                            "start": "2026-10-26T23:55:43.302701Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000022",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-515f-65c6-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:44.541798Z",
                            "start": "2026-10-26T23:55:43.931086Z"
                        },
                        "id": "0242ac17-0010-515f-65c6-000000000024",
                        "name": "Ensure Zuul Output directories exist"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "changed": 8,
            "failures": 0,
            "ignored": 0,
            "ok": 15,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        },
        "localhost": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 6,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "1",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-jobs/playbooks/molecule/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-26T23:55:55.953802Z",
                    "start": "2026-10-26T23:55:45.293972Z"
                },
                "id": "0242ac17-0010-0e8b-7fb6-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.unarchive",
                            "changed": true,
                            "dest": "/usr/local/bin",
                            "extract_results": {
                                "cmd": [
                                    "/usr/bin/tar",
                                    "--extract",
                                    "-C",
                                    "/usr/local/bin",
                                    "-z",
                                    "--show-transformed-names",
                                    "--strip-components=1",
                                    "-f",
                                    "/home/zuul/.ansible/tmp/ansible-tmp-1793058945.3537037-5-252419478028225/uv-x86_64-unknown-linux-gnuy_bdxsq8.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-1793058945.3537037-5-252419478028225/uv-x86_64-unknown-linux-gnuy_bdxsq8.tar.gz",
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-0e8b-7fb6-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:47.774710Z",
                            "start": "2026-10-26T23:55:45.304197Z"
                        },
                        "id": "0242ac17-0010-0e8b-7fb6-000000000007",
                        "name": "Extract archive"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "/usr/local/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.017517",
                            "end": "2026-10-26 23:55:48.224547",
                            "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-0e8b-7fb6-000000000008-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:55:48.207030",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.8.13",
                            "stdout_lines": [
                                "uv 0.8.13"
                            ],
                            "zuul_log_id": "0242ac17-0010-0e8b-7fb6-000000000008-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-0e8b-7fb6-000000000005",
                        "name": "setup-uv",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_0/github.com/vexxhost/zuul-jobs/roles/setup-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:48.336108Z",
                            "start": "2026-10-26T23:55:47.818560Z"
                        },
                        "id": "0242ac17-0010-0e8b-7fb6-000000000008",
                        "name": "Print version"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "molecule_install_galaxy_sibling_collections",
                            "changed": true,
                            "checkouts": [
                                {
                                    "changed": true,
                                    "name": "ansible.posix",
                                    "path": "/home/zuul/src/github.com/ansible-collections/ansible.posix",
                                    "tag": "2.2.2"
                                },
                                {
                                    "changed": true,
                                    "name": "community.crypto",
                                    "path": "/home/zuul/src/github.com/ansible-collections/community.crypto",
                                    "tag": "3.5.1"
                                },
                                {
                                    "changed": true,
                                    "name": "community.general",
                                    "path": "/home/zuul/src/github.com/ansible-collections/community.general",
                                    "tag": "13.5.0"
                                },
                                {
                                    "changed": true,
                                    "name": "kubernetes.core",
                                    "path": "/home/zuul/src/github.com/ansible-collections/kubernetes.core",
                                    "tag": "6.6.0"
                                },
                                {
                                    "changed": true,
                                    "name": "openstack.cloud",
                                    "path": "/home/zuul/src/opendev.org/openstack/ansible-collections-openstack",
                                    "tag": "2.6.0"
                                },
                                {
                                    "changed": true,
                                    "name": "vexxhost.containers",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-containers",
                                    "tag": "v1.6.8"
                                },
                                {
                                    "changed": false,
                                    "name": "vexxhost.kubernetes",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "tag": "v3.4.0"
                                }
                            ],
                            "installed": [
                                {
                                    "in_build_refs": false,
                                    "name": "ansible.posix",
                                    "path": "/home/zuul/src/github.com/ansible-collections/ansible.posix",
                                    "spec": ">=1.6.0",
                                    "tag": "2.2.2",
                                    "version": "2.2.2"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "community.crypto",
                                    "path": "/home/zuul/src/github.com/ansible-collections/community.crypto",
                                    "spec": ">=2.2.3",
                                    "tag": "3.5.1",
                                    "version": "3.5.1"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "community.general",
                                    "path": "/home/zuul/src/github.com/ansible-collections/community.general",
                                    "spec": ">=4.5.0",
                                    "tag": "13.5.0",
                                    "version": "13.5.0"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "kubernetes.core",
                                    "path": "/home/zuul/src/github.com/ansible-collections/kubernetes.core",
                                    "spec": ">=2.4.0,>=2.3.2",
                                    "tag": "6.6.0",
                                    "version": "6.6.0"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "openstack.cloud",
                                    "path": "/home/zuul/src/opendev.org/openstack/ansible-collections-openstack",
                                    "spec": ">=2.0.0",
                                    "tag": "2.6.0",
                                    "version": "2.6.0"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "vexxhost.containers",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-containers",
                                    "spec": ">=1.6.0",
                                    "tag": "v1.6.8",
                                    "version": "1.6.8"
                                },
                                {
                                    "in_build_refs": false,
                                    "name": "vexxhost.kubernetes",
                                    "path": "/home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes",
                                    "spec": ">=2.5.0",
                                    "tag": "v3.4.0",
                                    "version": "3.4.0"
                                }
                            ],
                            "invocation": {
                                "module_args": {
                                    "build_refs": [
                                        {
                                            "branch": "main",
                                            "change": "102",
                                            "change_message": "chore(deps): update dependency fluxcd/flux2 to v2.10.0\n\n> [!NOTE]\n> This PR body was truncated due to platform limits.\n\nThis PR contains the following updates:\n\n| Package | Update | Change |\n|---|---|---|\n| [fluxcd/flux2](https://redirect.github.com/fluxcd/flux2) | minor | `2.6.4` \u2192 `2.10.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fluxcd/flux2</summary>\n\n### [`v2.10.0`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.10.0)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.6...v2.10.0)\n\n#### Highlights\n\nFlux v2.10.0 is a feature release. Users are encouraged to upgrade for the best experience.\n\nOverview of the new features:\n\n- Object identity is generally available; the `ObjectLevelWorkloadIdentity` feature gate is retired\n- SPIFFE mTLS for inter-controller communication\n- Notification `Event`, `Alert` and `Provider` APIs promoted to `v1`\n- `OCIRepository` as a chart source for `HelmRelease`\n- SOPS decryption for files encrypted with comment regexes, and `--override-manager-before-dry-run` (`Kustomization`)\n- Image update batching with `.spec.policyChangeDelay`, retry on rejected pushes, and `.Changed.Summary` (`ImageUpdateAutomation`)\n- Flux artifact storage backend enabled by default for `ImageRepository` tags\n- Cross-namespace artifacts, tenant namespace provisioning, and path-pattern discovery (`ArtifactGenerator`)\n- New Zoom, incident.io and Mastodon notification providers\n- Built with Kubernetes 1.37 and Go 1.27\n\n\u2764\ufe0f Big thanks to all the Flux contributors that helped us with this release!\n\n##### Kubernetes compatibility\n\nThis release is compatible with the following Kubernetes versions:\n\n| Kubernetes version | Minimum required |\n| ------------------ | ---------------- |\n| `v1.35`            | `>= 1.35.2`      |\n| `v1.36`            | `>= 1.36.1`      |\n| `v1.37`            | `>= 1.37.0`      |\n\n> \\[!NOTE]\n> Note that the Flux project offers support only for the latest three minor versions of Kubernetes.\n> Backwards compatibility with older versions of Kubernetes and OpenShift is offered by vendors such as\n> [ControlPlane](https://control-plane.io/enterprise-for-flux-cd/) that provide enterprise support for Flux.\n\n##### OpenShift compatibility\n\nFlux can be installed on Red Hat OpenShift cluster directly from OperatorHub using [Flux Operator](https://operatorhub.io/operator/flux-operator). The operator allows the configuration of Flux multi-tenancy lockdown, network policies, persistent storage, sharding, vertical scaling and the synchronization of the cluster state from Git repositories, OCI artifacts, and S3-compatible storage.\n\n#### Upgrade procedure\n\n\u26a0\ufe0f **Breaking changes in this release:**\n\n- Object identity is always enabled and the default Flux RBAC no longer grants the `create` verb on the `serviceaccounts/token` resource. If your installation relies on the default RBAC, bind a ClusterRole with this permission to the controller ServiceAccount before upgrading. See [fluxcd/flux2#6139](https://redirect.github.com/fluxcd/flux2/pull/6139) for the required ClusterRole and ClusterRoleBinding.\n- The notification `Alert` and `Provider` APIs are promoted to `v1`. Converting a `v1beta3` `Alert` or `Provider` to `v1` drops the deprecated `Alert.spec.summary` and `Provider.spec.interval` fields, the static JWT token for Azure Event Hub, and TLS or proxy configuration in `Provider.spec.secretRef`. Use `eventMetadata.summary`, `proxySecretRef` and `certSecretRef` instead.\n- The Flux artifact storage backend is now the default for the `ImageRepository` tag database. Switching the gate wipes the local tag database, so the first reconciliation after the upgrade rescans every `ImageRepository`. Set `--feature-gates=FluxStorage=false` to keep using BadgerDB.\n- Remote cluster authentication with `.spec.kubeConfig.configMapRef` uses object identity; replace the legacy `audiences` key with `credential.auth.fluxcd.io/audiences`.\n\nPlease follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from older versions of Flux to v2.10.\n\n#### Components changelog\n\n- source-controller [v1.10.1](https://redirect.github.com/fluxcd/source-controller/blob/v1.10.1/CHANGELOG.md)\n- kustomize-controller [v1.10.1](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.10.1/CHANGELOG.md)\n- notification-controller [v1.10.0](https://redirect.github.com/fluxcd/notification-controller/blob/v1.10.0/CHANGELOG.md)\n- helm-controller [v1.7.1](https://redirect.github.com/fluxcd/helm-controller/blob/v1.7.1/CHANGELOG.md)\n- image-reflector-controller [v1.3.0](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.3.0/CHANGELOG.md)\n- image-automation-controller [v1.3.0](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.3.0/CHANGELOG.md)\n- source-watcher [v2.3.1](https://redirect.github.com/fluxcd/source-watcher/blob/v2.3.1/CHANGELOG.md)\n\n#### CLI changelog\n\n- Add backport label for 2.9 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5970](https://redirect.github.com/fluxcd/flux2/pull/5970)\n- Fix breaking change in-memory kustomization build by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5969](https://redirect.github.com/fluxcd/flux2/pull/5969)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5976](https://redirect.github.com/fluxcd/flux2/pull/5976)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5978](https://redirect.github.com/fluxcd/flux2/pull/5978)\n- Add checksum verification for SOPS in e2e workflows by [@&#8203;ivonaest](https://redirect.github.com/ivonaest) in [#&#8203;5961](https://redirect.github.com/fluxcd/flux2/pull/5961)\n- Add --add-ignore-paths flag to artifact commands by [@&#8203;ruslan-shaydullin](https://redirect.github.com/ruslan-shaydullin) in [#&#8203;5885](https://redirect.github.com/fluxcd/flux2/pull/5885)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5983](https://redirect.github.com/fluxcd/flux2/pull/5983)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5989](https://redirect.github.com/fluxcd/flux2/pull/5989)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5993](https://redirect.github.com/fluxcd/flux2/pull/5993)\n- Include source-watcher to oci flux-manifests by [@&#8203;sergelogvinov](https://redirect.github.com/sergelogvinov) in [#&#8203;5995](https://redirect.github.com/fluxcd/flux2/pull/5995)\n- docs: fix typo in RFC-0004 (enviornment -> environment) by [@&#8203;mridulagithub](https://redirect.github.com/mridulagithub) in [#&#8203;6002](https://redirect.github.com/fluxcd/flux2/pull/6002)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6005](https://redirect.github.com/fluxcd/flux2/pull/6005)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6010](https://redirect.github.com/fluxcd/flux2/pull/6010)\n- Add version-file input to the Flux CLI action by [@&#8203;somaz94](https://redirect.github.com/somaz94) in [#&#8203;5975](https://redirect.github.com/fluxcd/flux2/pull/5975)\n- Add support for 2.9 in `migrate -f` by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6020](https://redirect.github.com/fluxcd/flux2/pull/6020)\n- Fix Azure e2e tests after new major version with breaking changes by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6022](https://redirect.github.com/fluxcd/flux2/pull/6022)\n- fix: restrict `allow-webhooks` netpol to receiver port by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6028](https://redirect.github.com/fluxcd/flux2/pull/6028)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6030](https://redirect.github.com/fluxcd/flux2/pull/6030)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6050](https://redirect.github.com/fluxcd/flux2/pull/6050)\n- build(deps): bump the ci group across 1 directory with 19 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;6052](https://redirect.github.com/fluxcd/flux2/pull/6052)\n- Format reproducible created timestamp in UTC by [@&#8203;lexfrei](https://redirect.github.com/lexfrei) in [#&#8203;6074](https://redirect.github.com/fluxcd/flux2/pull/6074)\n- Update to Kubernetes 1.37 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6082](https://redirect.github.com/fluxcd/flux2/pull/6082)\n- Run conformance tests for Kubernetes 1.37 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6083](https://redirect.github.com/fluxcd/flux2/pull/6083)\n- Remove the Cosign v2.6.1 pin by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6084](https://redirect.github.com/fluxcd/flux2/pull/6084)\n- Add `--app-client-id` flag to `create secret githubapp` by [@&#8203;Erik-Schuetze](https://redirect.github.com/Erik-Schuetze) in [#&#8203;6090](https://redirect.github.com/fluxcd/flux2/pull/6090)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6096](https://redirect.github.com/fluxcd/flux2/pull/6096)\n- Match plugin archive entries with a leading ./ by [@&#8203;Saadanjum0](https://redirect.github.com/Saadanjum0) in [#&#8203;6099](https://redirect.github.com/fluxcd/flux2/pull/6099)\n- Stop diff processing after an error by [@&#8203;idelchi](https://redirect.github.com/idelchi) in [#&#8203;6070](https://redirect.github.com/fluxcd/flux2/pull/6070)\n- Respect pruning exclusions in kustomization diff by [@&#8203;idelchi](https://redirect.github.com/idelchi) in [#&#8203;6073](https://redirect.github.com/fluxcd/flux2/pull/6073)\n- Introduce RBAC for ArtifactGenerator cross-namespace artifacts by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6101](https://redirect.github.com/fluxcd/flux2/pull/6101)\n- \\[RFC-0014] Advanced Support for Short-Lived Cryptographic Material by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5702](https://redirect.github.com/fluxcd/flux2/pull/5702)\n- Validate plugin manifest name by [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) in [#&#8203;6104](https://redirect.github.com/fluxcd/flux2/pull/6104)\n- ci: disable Replicated conformance tests by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6111](https://redirect.github.com/fluxcd/flux2/pull/6111)\n- \\[RFC-0014] RFC refinements by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6105](https://redirect.github.com/fluxcd/flux2/pull/6105)\n- \\[RFC-0014] Annotations for AWS STS Endpoint and Docker Hub OIDC Connection by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6114](https://redirect.github.com/fluxcd/flux2/pull/6114)\n- Update to Kubernetes 1.37.1 and Go 1.27 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6117](https://redirect.github.com/fluxcd/flux2/pull/6117)\n- build(deps): bump the ci group across 1 directory with 15 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;6118](https://redirect.github.com/fluxcd/flux2/pull/6118)\n- \\[RFC-0014] Add rules for missing corner cases by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6121](https://redirect.github.com/fluxcd/flux2/pull/6121)\n- \\[RFC-0014] Address final nits arising from apis/crypto implementation by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6122](https://redirect.github.com/fluxcd/flux2/pull/6122)\n- \\[RFC-0014] Final iterations for 2.10 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6125](https://redirect.github.com/fluxcd/flux2/pull/6125)\n- Revert \"Introduce RBAC for ArtifactGenerator cross-namespace artifacts\" by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6129](https://redirect.github.com/fluxcd/flux2/pull/6129)\n- Allow controllers to perform SubjectAccessReview by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6132](https://redirect.github.com/fluxcd/flux2/pull/6132)\n- Accept TYPE/NAME resource args in get/reconcile by [@&#8203;souvik-biswas-dev](https://redirect.github.com/souvik-biswas-dev) in [#&#8203;6134](https://redirect.github.com/fluxcd/flux2/pull/6134)\n- Add digests flag to plugin search, which displays SHA values for all os/arch per binary by [@&#8203;datosh](https://redirect.github.com/datosh) in [#&#8203;6016](https://redirect.github.com/fluxcd/flux2/pull/6016)\n- Extend kubectl-style resource args to all Flux kinds and commands by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6135](https://redirect.github.com/fluxcd/flux2/pull/6135)\n- Escape terminal control characters in CLI output by [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) in [#&#8203;6110](https://redirect.github.com/fluxcd/flux2/pull/6110)\n- Add suspend, resume and reconcile commands for ArtifactGenerator by [@&#8203;xchose](https://redirect.github.com/xchose) in [#&#8203;6119](https://redirect.github.com/fluxcd/flux2/pull/6119)\n- \\[RFC-0014] Address review findings by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6136](https://redirect.github.com/fluxcd/flux2/pull/6136)\n- \\[RFC-0014] Inter-controller mTLS via SPIFFE by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6127](https://redirect.github.com/fluxcd/flux2/pull/6127)\n- Fix proxy bypass in bootstrap --ca-file by [@&#8203;ljluestc](https://redirect.github.com/ljluestc) in [#&#8203;6038](https://redirect.github.com/fluxcd/flux2/pull/6038)\n- use restrictive file modes for generated manifests by [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) in [#&#8203;6113](https://redirect.github.com/fluxcd/flux2/pull/6113)\n- fix(goreleaser): make Homebrew formula pass brew audit by [@&#8203;trademomentumllc](https://redirect.github.com/trademomentumllc) in [#&#8203;5973](https://redirect.github.com/fluxcd/flux2/pull/5973)\n- Fix envsubst dropping input on long lines by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6138](https://redirect.github.com/fluxcd/flux2/pull/6138)\n- fix: return clear error when --private-key-file path starts with '\\~' by [@&#8203;rafaelperoco](https://redirect.github.com/rafaelperoco) in [#&#8203;5859](https://redirect.github.com/fluxcd/flux2/pull/5859)\n- Fix stale flags and commands in CLI examples by [@&#8203;rawsun007](https://redirect.github.com/rawsun007) in [#&#8203;6123](https://redirect.github.com/fluxcd/flux2/pull/6123)\n- Fix typos in user-facing CLI messages and comments by [@&#8203;MsfPablo](https://redirect.github.com/MsfPablo) in [#&#8203;6051](https://redirect.github.com/fluxcd/flux2/pull/6051)\n- Remove unused fields from installFlags by [@&#8203;Pranav-error](https://redirect.github.com/Pranav-error) in [#&#8203;6061](https://redirect.github.com/fluxcd/flux2/pull/6061)\n- \u26a0\ufe0f Breaking change: Harden RBAC for controllers by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6139](https://redirect.github.com/fluxcd/flux2/pull/6139)\n- Fix `--in-memory-build` restricting disk access by [@&#8203;rycli](https://redirect.github.com/rycli) in [#&#8203;5974](https://redirect.github.com/fluxcd/flux2/pull/5974)\n- Update dependencies for Flux 2.10 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6140](https://redirect.github.com/fluxcd/flux2/pull/6140)\n- \\[RFC-0014] Add 2.10 notes to RFC by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6145](https://redirect.github.com/fluxcd/flux2/pull/6145)\n- fix(create): reject conflicting image policy selectors for every flag pair by [@&#8203;NUAAwqy](https://redirect.github.com/NUAAwqy) in [#&#8203;6144](https://redirect.github.com/fluxcd/flux2/pull/6144)\n- ci: Update GitHub Actions by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6147](https://redirect.github.com/fluxcd/flux2/pull/6147)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6148](https://redirect.github.com/fluxcd/flux2/pull/6148)\n- Add `--policy-change-delay` to create image update by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6146](https://redirect.github.com/fluxcd/flux2/pull/6146)\n- \\[RFC-0014] Remove temporary workarounds for mTLS e2e by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6137](https://redirect.github.com/fluxcd/flux2/pull/6137)\n- \\[RFC-0014] Add HTTPS port to controller Services by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6149](https://redirect.github.com/fluxcd/flux2/pull/6149)\n- \\[RFC-0014] Include SPIFFE mTLS in the e2e workflow by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6150](https://redirect.github.com/fluxcd/flux2/pull/6150)\n- ci: fix goreleaser signing with cosign v3 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6151](https://redirect.github.com/fluxcd/flux2/pull/6151)\n- Remove unsupported fields in migrate -f by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6152](https://redirect.github.com/fluxcd/flux2/pull/6152)\n- Bump minimum Kubernetes version to 1.35 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6153](https://redirect.github.com/fluxcd/flux2/pull/6153)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6154](https://redirect.github.com/fluxcd/flux2/pull/6154)\n- Use podinfo in the SPIFFE mTLS e2e test by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6156](https://redirect.github.com/fluxcd/flux2/pull/6156)\n\n#### New Contributors\n\n- [@&#8203;ivonaest](https://redirect.github.com/ivonaest) made their first contribution in [#&#8203;5961](https://redirect.github.com/fluxcd/flux2/pull/5961)\n- [@&#8203;ruslan-shaydullin](https://redirect.github.com/ruslan-shaydullin) made their first contribution in [#&#8203;5885](https://redirect.github.com/fluxcd/flux2/pull/5885)\n- [@&#8203;sergelogvinov](https://redirect.github.com/sergelogvinov) made their first contribution in [#&#8203;5995](https://redirect.github.com/fluxcd/flux2/pull/5995)\n- [@&#8203;mridulagithub](https://redirect.github.com/mridulagithub) made their first contribution in [#&#8203;6002](https://redirect.github.com/fluxcd/flux2/pull/6002)\n- [@&#8203;somaz94](https://redirect.github.com/somaz94) made their first contribution in [#&#8203;5975](https://redirect.github.com/fluxcd/flux2/pull/5975)\n- [@&#8203;lexfrei](https://redirect.github.com/lexfrei) made their first contribution in [#&#8203;6074](https://redirect.github.com/fluxcd/flux2/pull/6074)\n- [@&#8203;Erik-Schuetze](https://redirect.github.com/Erik-Schuetze) made their first contribution in [#&#8203;6090](https://redirect.github.com/fluxcd/flux2/pull/6090)\n- [@&#8203;Saadanjum0](https://redirect.github.com/Saadanjum0) made their first contribution in [#&#8203;6099](https://redirect.github.com/fluxcd/flux2/pull/6099)\n- [@&#8203;idelchi](https://redirect.github.com/idelchi) made their first contribution in [#&#8203;6070](https://redirect.github.com/fluxcd/flux2/pull/6070)\n- [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) made their first contribution in [#&#8203;6104](https://redirect.github.com/fluxcd/flux2/pull/6104)\n- [@&#8203;souvik-biswas-dev](https://redirect.github.com/souvik-biswas-dev) made their first contribution in [#&#8203;6134](https://redirect.github.com/fluxcd/flux2/pull/6134)\n- [@&#8203;datosh](https://redirect.github.com/datosh) made their first contribution in [#&#8203;6016](https://redirect.github.com/fluxcd/flux2/pull/6016)\n- [@&#8203;xchose](https://redirect.github.com/xchose) made their first contribution in [#&#8203;6119](https://redirect.github.com/fluxcd/flux2/pull/6119)\n- [@&#8203;ljluestc](https://redirect.github.com/ljluestc) made their first contribution in [#&#8203;6038](https://redirect.github.com/fluxcd/flux2/pull/6038)\n- [@&#8203;trademomentumllc](https://redirect.github.com/trademomentumllc) made their first contribution in [#&#8203;5973](https://redirect.github.com/fluxcd/flux2/pull/5973)\n- [@&#8203;rawsun007](https://redirect.github.com/rawsun007) made their first contribution in [#&#8203;6123](https://redirect.github.com/fluxcd/flux2/pull/6123)\n- [@&#8203;MsfPablo](https://redirect.github.com/MsfPablo) made their first contribution in [#&#8203;6051](https://redirect.github.com/fluxcd/flux2/pull/6051)\n- [@&#8203;Pranav-error](https://redirect.github.com/Pranav-error) made their first contribution in [#&#8203;6061](https://redirect.github.com/fluxcd/flux2/pull/6061)\n- [@&#8203;NUAAwqy](https://redirect.github.com/NUAAwqy) made their first contribution in [#&#8203;6144](https://redirect.github.com/fluxcd/flux2/pull/6144)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.6...v2.10.0>\n\n### [`v2.9.6`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.6)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.5...v2.9.6)\n\n#### Highlights\n\nFlux v2.9.6 is a patch release that stops helm-controller from reapplying chart CRDs on every upgrade when server-side apply is enabled, and recovers HelmReleases left with a drifted `Ready=Unknown` condition after a failed status patch. source-controller normalizes Azure Blob listing ETags so unchanged containers are no longer re-downloaded on every reconcile, and evicts stale Helm repository index entries from the cache so repositories with frequently changing indexes no longer fail with \"Cache is full\". kustomize-controller extends SOPS decryption error redaction to `spec.postBuild.substituteFrom` values, so substituted secrets echoed back in API validation errors are masked out of status conditions and events, and adds the opt-in `DisableCommitStatusEvent` feature gate. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Stop reapplying chart CRDs on upgrades when using server-side apply with the default `Create` policy (helm-controller)\n- Recover HelmReleases stranded with a drifted `Ready=Unknown` condition after a failed status patch (helm-controller)\n- Ignore `NotFound` when deleting the HelmChart (helm-controller)\n- Normalize Azure Blob listing ETags so unchanged containers are not re-downloaded on every reconcile (source-controller)\n- Evict stale Helm repository index entries from the cache to avoid \"Cache is full\" errors (source-controller)\n- Extend SOPS decryption error redaction to `spec.postBuild.substituteFrom` values (kustomize-controller)\n\nImprovements:\n\n- Add the opt-in `DisableCommitStatusEvent` feature gate (kustomize-controller)\n\n#### Components changelog\n\n- source-controller [v1.9.6](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.6/CHANGELOG.md)\n- kustomize-controller [v1.9.6](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.6/CHANGELOG.md)\n- helm-controller [v1.6.5](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.5/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Format reproducible created timestamp in UTC by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6081](https://redirect.github.com/fluxcd/flux2/pull/6081)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6097](https://redirect.github.com/fluxcd/flux2/pull/6097)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.5...v2.9.6>\n\n### [`v2.9.5`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.5)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.4...v2.9.5)\n\n#### Highlights\n\nFlux v2.9.5 is a patch release that moves helm-controller and source-controller back to upstream Helm, now at v4.2.4, dropping the temporary Flux fork. It hardens the handling of kubeconfig Secrets in helm-controller and kustomize-controller, which now reject kubeconfigs referencing files on the local filesystem and require credentials and certificates to be embedded inline. It also stops kustomize-controller from leaving behind the temporary directories of a previous process that exited without running its cleanup, and fixes a crash in post-build substitution where a substring expression with a negative length, e.g. `${VAR:2:-1}`, panicked instead of counting back from the end of the string like Bash does. Across all controllers and the CLI, the fluxcd/pkg dependencies have been updated, bringing Kubernetes to 1.36.4. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Validate kubeconfigs from `.spec.kubeConfig` Secrets, rejecting local file references in `certificate-authority`, `tokenFile`, `client-certificate` and `client-key`; credentials and certificates must be embedded inline (helm-controller, kustomize-controller)\n- Purge temporary directories at startup (kustomize-controller)\n- Fix panic on negative-length substring expressions in post-build substitution (kustomize-controller, flux CLI)\n\nImprovements:\n\n- Move back to upstream Helm v4.2.4, dropping the Flux fork (helm-controller, source-controller)\n- Update fluxcd/pkg dependencies, which bring Kubernetes to 1.36.4 (all controllers, flux CLI)\n\n#### Components changelog\n\n- source-controller [v1.9.5](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.5/CHANGELOG.md)\n- source-watcher [v2.2.4](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.4/CHANGELOG.md)\n- kustomize-controller [v1.9.5](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.5/CHANGELOG.md)\n- helm-controller [v1.6.4](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.4/CHANGELOG.md)\n- notification-controller [v1.9.4](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.4/CHANGELOG.md)\n- image-reflector-controller [v1.2.5](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.5/CHANGELOG.md)\n- image-automation-controller [v1.2.5](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.5/CHANGELOG.md)\n\n#### CLI changelog\n\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6046](https://redirect.github.com/fluxcd/flux2/pull/6046)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6048](https://redirect.github.com/fluxcd/flux2/pull/6048)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6049](https://redirect.github.com/fluxcd/flux2/pull/6049)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.4...v2.9.5>\n\n### [`v2.9.4`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.4)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.3...v2.9.4)\n\n#### Highlights\n\nFlux v2.9.4 is a patch release that ships various fixes to the Flux controllers, covering source-watcher tarball extraction and glob expansion limits, the refspecs accepted by `ImageUpdateAutomation`, the HTTP request limits of the notification-controller servers, and Helm repository index loading, OCI chart digest pinning, `Bucket` error handling and GCS static authentication in source-controller. On the CLI side, `flux migrate -f` now supports migrating repositories to Flux 2.9. Users are encouraged to upgrade for the best experience.\n\nNote that this release contains CRD schema changes for `ArtifactGenerator` and `ImageUpdateAutomation`; both CRDs must be updated along with the controllers.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Confine tarball extraction and bound glob expansion (source-watcher)\n- Disallow force-update and deletion via refspecs (image-automation-controller)\n- Unify HTTP server request limits (notification-controller)\n- Align Helm repository index loading with upstream Helm v4 (source-controller)\n- Improve error handling in `Bucket` reconciliation (source-controller)\n- Pin OCI chart verification by digest (source-controller)\n- Limit GCS static authentication to service account keys (source-controller)\n- Restrict the `allow-webhooks` network policy to the receiver port (flux CLI)\n\nImprovements:\n\n- Add support for migrating repositories to 2.9 in `flux migrate -f` (flux CLI)\n- Update fluxcd/pkg dependencies, which align the ECR host detection with upstream (source-controller, image-reflector-controller, flux CLI)\n- Update Bitbucket Cloud receiver guidance (notification-controller)\n\n#### Components changelog\n\n- source-controller [v1.9.4](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.4/CHANGELOG.md)\n- source-watcher [v2.2.3](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.3/CHANGELOG.md)\n- notification-controller [v1.9.3](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.3/CHANGELOG.md)\n- image-reflector-controller [v1.2.4](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.4/CHANGELOG.md)\n- image-automation-controller [v1.2.4](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.4/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Add support for 2.9 in `migrate -f` by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6021](https://redirect.github.com/fluxcd/flux2/pull/6021)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6026](https://redirect.github.com/fluxcd/flux2/pull/6026)\n- \\[release/v2.9.x] fix: restrict `allow-webhooks` netpol to receiver port by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6029](https://redirect.github.com/fluxcd/flux2/pull/6029)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6031](https://redirect.github.com/fluxcd/flux2/pull/6031)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.3...v2.9.4>\n\n### [`v2.9.3`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.3)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.2...v2.9.3)\n\n#### Highlights\n\nFlux v2.9.3 is a patch release. It fixes empty lines vanishing from rendered Helm chart manifests, HelmReleases being marked as tested when their Helm test hooks never ran, and `spec.images` entries that set only some image fields discarding the remaining fields already declared for the same image in the `kustomization.yaml`. The latter affects both kustomize-controller and the `flux build|diff kustomization` commands. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Fix empty lines vanishing from rendered chart manifests (helm-controller)\n- Fix `HasBeenTested` for all corner cases, where a release could be marked as tested although its Helm test hooks never ran (helm-controller)\n- Fix a `spec.images` entry setting only some of the image fields discarding the remaining fields already declared for the same image in the `kustomization.yaml` at `spec.path`, e.g. overriding only `newName` produced an untagged image reference (kustomize-controller, flux CLI)\n\nImprovements:\n\n- Update fluxcd/pkg dependencies\n- Include source-watcher in the OCI flux-manifests artifact\n\n#### Components changelog\n\n- kustomize-controller [v1.9.4](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.4/CHANGELOG.md)\n- helm-controller [v1.6.3](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.3/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Include source-watcher to oci flux-manifests by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5996](https://redirect.github.com/fluxcd/flux2/pull/5996)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6006](https://redirect.github.com/fluxcd/flux2/pull/6006)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6011](https://redirect.github.com/fluxcd/flux2/pull/6011)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.2...v2.9.3>\n\n### [`v2.9.2`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.2)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.1...v2.9.2)\n\n#### Highlights\n\nFlux v2.9.2 is a patch release. The main fix addresses a regression introduced in\nv2.9.1 where a Kustomization with `openapi.path` pointing to a URL failed to\nreconcile with `failed to read OpenAPI schema`. This release also corrects several\nCRD field descriptions that contained inaccurate or leaked content. Users are\nencouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Fix a regression where a Kustomization with `openapi.path` pointing to a URL failed to reconcile with `failed to read OpenAPI schema` (kustomize-controller)\n- Fix the `HelmChart` CRD description for `.status.url`, which pointed users at `BucketStatus.Artifact` instead of `HelmChartStatus.Artifact` (source-controller)\n- Fix the `ImageRepository` CRD description for `.status.observedExclusionList`, which referred to `spec.lastScanResult` instead of `status.lastScanResult` (image-reflector-controller)\n- Fix the `ImageUpdateAutomation` CRD description for `.status.observedSourceRevision`, which had a stray Go struct declaration leaking into it (image-automation-controller)\n\nImprovements:\n\n- Update fluxcd/pkg dependencies\n\n#### Components changelog\n\n- source-controller [v1.9.3](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.3/CHANGELOG.md)\n- kustomize-controller [v1.9.3](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.3/CHANGELOG.md)\n- helm-controller [v1.6.2](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.2/CHANGELOG.md)\n- notification-controller [v1.9.2](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.2/CHANGELOG.md)\n- image-reflector-controller [v1.2.3](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.3/CHANGELOG.md)\n- image-automation-controller [v1.2.3](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.3/CHANGELOG.md)\n- source-watcher [v2.2.2](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.2/CHANGELOG.md)\n\n#### CLI changelog\n\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5984](https://redirect.github.com/fluxcd/flux2/pull/5984)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5990](https://redirect.github.com/fluxcd/flux2/pull/5990)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5994](https://redirect.github.com/fluxcd/flux2/pull/5994)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.1...v2.9.2>\n\n### [`v2.9.1`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.1)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.0...v2.9.1)\n\n#### Highlights\n\nFlux v2.9.1 is a patch release. The main fix, applied across all controllers, disables Flux variable substitution on the Flux CRDs by annotating them with `kustomize.toolkit.fluxcd.io/substitute: disabled`, so that Kustomizations with post-build substitution enabled no longer corrupt the CRD schemas when they contain `${...}` sequences. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Disable Flux variable substitution on all Flux CRDs, preventing post-build substitution from corrupting CRD schemas that contain `${...}` sequences (all controllers)\n- Update SOPS dependency to fix `.ini` file decryption (kustomize-controller)\n- Fix a dry-run error where applying a resource with a strategic merge patch could fail with `<resource> is invalid` (kustomize-controller)\n- Fix a breaking change in the in-memory Kustomization build (Flux CLI)\n\nImprovements:\n\n- Cache the registry authorization token during Notation verification, so it is fetched once per verification instead of once per request (source-controller)\n- Update fluxcd/pkg dependencies\n\n#### Components changelog\n\n- source-controller [v1.9.2](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.2/CHANGELOG.md)\n- kustomize-controller [v1.9.2](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.2/CHANGELOG.md)\n- helm-controller [v1.6.2](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.2/CHANGELOG.md)\n- notification-controller [v1.9.2](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.2/CHANGELOG.md)\n- image-reflector-controller [v1.2.2](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.2/CHANGELOG.md)\n- image-automation-controller [v1.2.2](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.2/CHANGELOG.md)\n- source-watcher [v2.2.2](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.2/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Fix breaking change in-memory kustomization build by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5971](https://redirect.github.com/fluxcd/flux2/pull/5971)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5977](https://redirect.github.com/fluxcd/flux2/pull/5977)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5979](https://redirect.github.com/fluxcd/flux2/pull/5979)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.0...v2.9.1>\n\n### [`v2.9.0`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.0)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.8.8...v2.9.0)\n\n#### Highlights\n\nFlux v2.9.0 is a feature release. Users are encouraged to upgrade for the best experience.\n\nFor a compressive overview of new features and API changes included in this release, please refer to the [Announcing Flux 2.9 GA blog post](https://fluxcd.io/blog/2026/06/flux-v2.9.0/).\n\nOverview of the new features:\n\n- Flux CLI Plugin System with the Mirror and Schema plugins (`flux plugin`)\n- Server-Side Apply field ignore rules for fine-grained drift control (`Kustomization`)\n- SOPS decryption with the Age post-quantum cipher (`Kustomization`)\n- Kubernetes Workload Identity authentication for OpenBao and Vault (`Kustomization`)\n- Helm post-render strategies, including chart hooks support (`HelmRelease`)\n- Literal mode for Helm values references mirroring `helm --set-literal` (`HelmRelease`)\n- Allow empty kind in CEL health check expressions (`Kustomization`, `HelmRelease`)\n- Git commit signing and verification with SSH keys (`GitRepository`, `ImageUpdateAutomation`)\n- AWS CodeCommit authentication using Workload Identity (`GitRepository`)\n- Custom Sigstore trusted root for keyless verification in air-gapped environments (`OCIRepository`)\n- Path pattern directory discovery for monorepos (`ArtifactGenerator`)\n- Secret-less, OIDC-secured webhook Receivers (`Receiver`)\n\n\u2764\ufe0f Big thanks to all the Flux contributors that helped us with this release!\n\n##### Kubernetes compatibility\n\nThis release is compatible with the following Kubernetes versions:\n\n| Kubernetes version | Minimum required |\n| ------------------ | ---------------- |\n| `v1.34`            | `>= 1.34.1`      |\n| `v1.35`            | `>= 1.35.0`      |\n| `v1.36`            | `>= 1.36.0`      |\n\n> \\[!NOTE]\n> Note that the Flux project offers support only for the latest three minor versions of Kubernetes.\n> Backwards compatibility with older versions of Kubernetes and OpenShift is offered by vendors such as\n> [ControlPlane](https://control-plane.io/enterprise-for-flux-cd/) that provide enterprise support for Flux.\n\n##### OpenShift compatibility\n\nFlux can be installed on Red Hat OpenShift cluster directly from OperatorHub using [Flux Operator](https://operatorhub.io/operator/flux-operator). The operator allows the configuration of Flux multi-tenancy lockdown, network policies, persistent storage, sharding, vertical scaling and the synchronization of the cluster state from Git repositories, OCI artifacts, and S3-compatible storage.\n\n#### Upgrade procedure\n\n:warning: The Flux APIs `image.toolkit.fluxcd.io/v1beta2` and `notification.toolkit.fluxcd.io/v1beta2`\nhave reached end-of-life and have been removed from the CRDs.\n\nPlease follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from older versions of Flux to v2.9.\n\n#### Components changelog\n\n- source-controller [v1.9.1](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.1/CHANGELOG.md)\n- kustomize-controller [v1.9.1](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.1/CHANGELOG.md)\n- notification-controller [v1.9.1](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.1/CHANGELOG.md)\n- helm-controller [v1.6.1](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.1/CHANGELOG.md)\n- image-reflector-controller [v1.2.1](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.1/CHANGELOG.md)\n- image-automation-controller [v1.2.1](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.1/CHANGELOG.md)\n- source-watcher [v2.2.1](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.1/CHANGELOG.md)\n\n#### CLI changelog\n\n- Add backport label for Flux 2.8 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5732](https://redirect.github.com/fluxcd/flux2/pull/5732)\n- Remove no longer needed workaround for Flux 2.8 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5733](https://redirect.github.com/fluxcd/flux2/pull/5733)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5740](https://redirect.github.com/fluxcd/flux2/pull/5740)\n- Add missing things to release notes template by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5743](https://redirect.github.com/fluxcd/flux2/pull/5743)\n- ci: add top-level permissions to upgrade-fluxcd-pkg workflow by [@&#8203;gaganhr94](https://redirect.github.com/gaganhr94) in [#&#8203;5763](https://redirect.github.com/fluxcd/flux2/pull/5763)\n- build(deps): bump the ci group across 1 directory with 11 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5764](https://redirect.github.com/fluxcd/flux2/pull/5764)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5766](https://redirect.github.com/fluxcd/flux2/pull/5766)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5769](https://redirect.github.com/fluxcd/flux2/pull/5769)\n- Add target branch name to update branch by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5773](https://redirect.github.com/fluxcd/flux2/pull/5773)\n- Fix/resume exit code by [@&#8203;Aman-Cool](https://redirect.github.com/Aman-Cool) in [#&#8203;5701](https://redirect.github.com/fluxcd/flux2/pull/5701)\n- Mark RFC 0010, 0011 and 0012 as implemented by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5776](https://redirect.github.com/fluxcd/flux2/pull/5776)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5780](https://redirect.github.com/fluxcd/flux2/pull/5780)\n- Add --resolve-symlinks flag to build and push artifact commands by [@&#8203;rohansood10](https://redirect.github.com/rohansood10) in [#&#8203;5724](https://redirect.github.com/fluxcd/flux2/pull/5724)\n- fix: validate --source flag in create kustomization command by [@&#8203;gma1k](https://redirect.github.com/gma1k) in [#&#8203;5798](https://redirect.github.com/fluxcd/flux2/pull/5798)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5821](https://redirect.github.com/fluxcd/flux2/pull/5821)\n- Add `--show-source` to `flux get ks` and `flux get hr`  by [@&#8203;rafaelperoco](https://redirect.github.com/rafaelperoco) in [#&#8203;5828](https://redirect.github.com/fluxcd/flux2/pull/5828)\n- Add `flux create secret receiver` command by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5835](https://redirect.github.com/fluxcd/flux2/pull/5835)\n- fix: handle multiple symlinks to same target in build artifact by [@&#8203;Iam-Karan-Suresh](https://redirect.github.com/Iam-Karan-Suresh) in [#&#8203;5833](https://redirect.github.com/fluxcd/flux2/pull/5833)\n- Add `--in-memory-build` to `flux build ks` and `flux diff ks` by [@&#8203;rycli](https://redirect.github.com/rycli) in [#&#8203;5794](https://redirect.github.com/fluxcd/flux2/pull/5794)\n- Migrate end-to-end test to latest cloud SDKs  by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5840](https://redirect.github.com/fluxcd/flux2/pull/5840)\n- docs: Add AI Coding Assistants Guidance  by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5841](https://redirect.github.com/fluxcd/flux2/pull/5841)\n- Add AI Agents guidance by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5847](https://redirect.github.com/fluxcd/flux2/pull/5847)\n- \\[RFC-0013] Flux CLI Plugin System by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5795](https://redirect.github.com/fluxcd/flux2/pull/5795)\n- Add `--ignore-not-found` to `flux diff ks` by [@&#8203;rycli](https://redirect.github.com/rycli) in [#&#8203;5845](https://redirect.github.com/fluxcd/flux2/pull/5845)\n- \\[RFC-0013] Implement plugin system by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5849](https://redirect.github.com/fluxcd/flux2/pull/5849)\n- build(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.18.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5853](https://redirect.github.com/fluxcd/flux2/pull/5853)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5856](https://redirect.github.com/fluxcd/flux2/pull/5856)\n- Add digest pinning support to `flux plugin install` by [@&#8203;Iam-Karan-Suresh](https://redirect.github.com/Iam-Karan-Suresh) in [#&#8203;5872](https://redirect.github.com/fluxcd/flux2/pull/5872)\n- Add `--ns-follows-kube-context` global flag for using the kubeconfig context namespace by [@&#8203;jtyr](https://redirect.github.com/jtyr) in [#&#8203;5831](https://redirect.github.com/fluxcd/flux2/pull/5831)\n- include source-watcher in install.yaml manifests by [@&#8203;tmmorin](https://redirect.github.com/tmmorin) in [#&#8203;5881](https://redirect.github.com/fluxcd/flux2/pull/5881)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5890](https://redirect.github.com/fluxcd/flux2/pull/5890)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5903](https://redirect.github.com/fluxcd/flux2/pull/5903)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5907](https://redirect.github.com/fluxcd/flux2/pull/5907)\n- Validate Helm source URL schemes by [@&#8203;immanuwell](https://redirect.github.com/immanuwell) in [#&#8203;5909](https://redirect.github.com/fluxcd/flux2/pull/5909)\n- Introduce `flux trigger receiver` by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5908](https://redirect.github.com/fluxcd/flux2/pull/5908)\n- refactor(api): migrate MakeDependsOn to shared apis/meta func by [@&#8203;vecil](https://redirect.github.com/vecil) in [#&#8203;5912](https://redirect.github.com/fluxcd/flux2/pull/5912)\n- Update to Kubernetes 1.36 and Go 1.26 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5924](https://redirect.github.com/fluxcd/flux2/pull/5924)\n- build(deps): bump the ci group across 1 directory with 19 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5925](https://redirect.github.com/fluxcd/flux2/pull/5925)\n- Run conformance tests for Kubernetes 1.36 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5926](https://redirect.github.com/fluxcd/flux2/pull/5926)\n- Add support for AWS CodeCommit to `flux bootstrap git` by [@&#8203;taraspos](https://redirect.github.com/taraspos) in [#&#8203;5868](https://redirect.github.com/fluxcd/flux2/pull/5868)\n- Validate plugin binary path by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5927](https://redirect.github.com/fluxcd/flux2/pull/5927)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5928](https://redirect.github.com/fluxcd/flux2/pull/5928)\n- fix: preserve invalid metadata.labels in `flux build ks` by [@&#8203;raffis](https://redirect.github.com/raffis) in [#&#8203;5906](https://redirect.github.com/fluxcd/flux2/pull/5906)\n- build: target host arch for local builds/envtest by [@&#8203;stealthybox](https://redirect.github.com/stealthybox) in [#&#8203;5932](https://redirect.github.com/fluxcd/flux2/pull/5932)\n- build(deps): bump the ci group with 6 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5938](https://redirect.github.com/fluxcd/flux2/pull/5938)\n- Support specifing sparseCheckout in flux bootstrap by [@&#8203;piny940](https://redirect.github.com/piny940) in [#&#8203;5918](https://redirect.github.com/fluxcd/flux2/pull/5918)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5944](https://redirect.github.com/fluxcd/flux2/pull/5944)\n- Honor `ks.spec.postBuild.substituteStrategy` by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5945](https://redirect.github.com/fluxcd/flux2/pull/5945)\n- Add DriftIgnoreRules support to flux diff kustomization by [@&#8203;dipti-pai](https://redirect.github.com/dipti-pai) in [#&#8203;5923](https://redirect.github.com/fluxcd/flux2/pull/5923)\n- Allow signing commits using SSH key by [@&#8203;hiddeco](https://redirect.github.com/hiddeco) in [#&#8203;5920](https://redirect.github.com/fluxcd/flux2/pull/5920)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5950](https://redirect.github.com/fluxcd/flux2/pull/5950)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5937](https://redirect.github.com/fluxcd/flux2/pull/5937)\n- cmd: support `type!=status` in get --status-selector by [@&#8203;3uzbcqje](https://redirect.github.com/3uzbcqje) in [#&#8203;5952](https://redirect.github.com/fluxcd/flux2/pull/5952)\n- Fix `flux get all --status-selector` for empty results and notification resources by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5954](https://redirect.github.com/fluxcd/flux2/pull/5954)\n- Upgrade go-git-providers to v0.27.0 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5956](https://redirect.github.com/fluxcd/flux2/pull/5956)\n- Fix using Receiver adapter for ArtifactGenerator by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5957](https://redirect.github.com/fluxcd/flux2/pull/5957)\n- feat: Install Plugins alongside Flux setup in gh actions by [@&#8203;gat786](https://redirect.github.com/gat786) in [#&#8203;5955](https://redirect.github.com/fluxcd/flux2/pull/5955)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5960](https://redirect.github.com/fluxcd/flux2/pull/5960)\n- Add CLI support for OCIRepository.spec.layerSelector in flux create source oci by [@&#8203;dme86](https://redirect.github.com/dme86) in [#&#8203;5892](https://redirect.github.com/fluxcd/flux2/pull/5892)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5963](https://redirect.github.com/fluxcd/flux2/pull/5963)\n\n#### New Contributors\n\n- [@&#8203;gaganhr94](https://redirect.github.com/gaganhr94) made their first contribution in [#&#8203;5763](https://redirect.github.com/fluxcd/flux2/pull/5763)\n- [@&#8203;rohansood10](https://redirect.github.com/rohansood10) made their first contribution in [#&#8203;5724](https://redirect.github.com/fluxcd/flux2/pull/5724)\n- [@&#8203;gma1k](https://redirect.github.com/gma1k) made their first contribution in [#&#8203;5798](https://redirect.github.com/fluxcd/flux2/pull/5798)\n- [@&#8203;rafaelperoco](https://redirect.github.com/rafaelperoco) made their first contribution in [#&#8203;5828](https://redirect.github.com/fluxcd/flux2/pull/5828)\n- [@&#8203;Iam-Karan-Suresh](https://redirect.github.com/Iam-Karan-Suresh) made their first contribution in [#&#8203;5833](https://redirect.github.com/fluxcd/flux2/pull/5833)\n- [@&#8203;rycli](https://redirect.github.com/rycli) made their first contribution in [#&#8203;5794](https://redirect.github.com/fluxcd/flux2/pull/5794)\n- [@&#8203;jtyr](https://redirect.github.com/jtyr) made their first contribution in [#&#8203;5831](https://redirect.github.com/fluxcd/flux2/pull/5831)\n- [@&#8203;tmmorin](https://redirect.github.com/tmmorin) made their first contribution in [#&#8203;5881](https://redirect.github.com/fluxcd/flux2/pull/5881)\n- [@&#8203;immanuwell](https://redirect.github.com/immanuwell) made their first contribution in [#&#8203;5909](https://redirect.github.com/fluxcd/flux2/pull/5909)\n- [@&#8203;vecil](https://redirect.github.com/vecil) made their first contribution in [#&#8203;5912](https://redirect.github.com/fluxcd/flux2/pull/5912)\n- [@&#8203;taraspos](https://redirect.github.com/taraspos) made their first contribution in [#&#8203;5868](https://redirect.github.com/fluxcd/flux2/pull/5868)\n- [@&#8203;piny940](https://redirect.github.com/piny940) made their first contribution in [#&#8203;5918](https://redirect.github.com/fluxcd/flux2/pull/5918)\n- [@&#8203;3uzbcqje](https://redirect.github.com/3uzbcqje) made their first contribution in [#&#8203;5952](https://redirect.github.com/fluxcd/flux2/pull/5952)\n- [@&#8203;gat786](https://redirect.github.com/gat786) made their first contribution in [#&#8203;5955](https://redirect.github.com/fluxcd/flux2/pull/5955)\n- [@&#8203;dme86](https://redirect.github.com/dme86) made their first contribution in [#&#8203;5892](https://redirect.github.com/fluxcd/flux2/pull/5892)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.8.0...v2.9.0>\n\n### [`v2.8.8`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.8.8)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.8.7...v2.8.8)\n\n#### Highlights\n\nFlux v2.8.8 is a patch release that includes CVE fixes via go-git v5.19.1 (source-controller, image-automation-controller), reliability fixes in helm-controller and source-controller, the move of Helm back to upstream v4.2.0, support for GCP sovereign cloud artifact registries, and dependency updates. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Add a configurable HTTP timeout for artifact fetching, preventing fetches that could block indefinitely and stall reconciliations (helm-controller)\n- Fix unbounded memory growth caused by a Kubernetes client transport retry wrapper accumulating on every reconcile (helm-controller)\n- Stop force-applying non-CRD objects placed under\n\n> [!IMPORTANT]\n> \u2702 PR body was truncated to here.\n\n\n</details>\n\n---\n\n### Configuration\n\n\ud83d\udcc5 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n\ud83d\udea6 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n\u267b **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n\ud83d\udd15 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/vexxhost/atmosphere.common).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n",
                                            "change_url": "https://github.com/vexxhost/atmosphere.common/pull/102",
                                            "commit_id": "a36257f5fbc3fd25c301483d3e9119bbd1006d60",
                                            "patchset": "a36257f5fbc3fd25c301483d3e9119bbd1006d60",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/atmosphere.common",
                                                "name": "vexxhost/atmosphere.common",
                                                "short_name": "atmosphere.common",
                                                "src_dir": "src/github.com/vexxhost/atmosphere.common"
                                            },
                                            "src_dir": "src/github.com/vexxhost/atmosphere.common",
                                            "topic": null
                                        },
                                        {
                                            "branch": "main",
                                            "change": "102",
                                            "change_message": "chore(deps): update dependency fluxcd/flux2 to v2.10.0\n\n> [!NOTE]\n> This PR body was truncated due to platform limits.\n\nThis PR contains the following updates:\n\n| Package | Update | Change |\n|---|---|---|\n| [fluxcd/flux2](https://redirect.github.com/fluxcd/flux2) | minor | `2.6.4` \u2192 `2.10.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>fluxcd/flux2</summary>\n\n### [`v2.10.0`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.10.0)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.6...v2.10.0)\n\n#### Highlights\n\nFlux v2.10.0 is a feature release. Users are encouraged to upgrade for the best experience.\n\nOverview of the new features:\n\n- Object identity is generally available; the `ObjectLevelWorkloadIdentity` feature gate is retired\n- SPIFFE mTLS for inter-controller communication\n- Notification `Event`, `Alert` and `Provider` APIs promoted to `v1`\n- `OCIRepository` as a chart source for `HelmRelease`\n- SOPS decryption for files encrypted with comment regexes, and `--override-manager-before-dry-run` (`Kustomization`)\n- Image update batching with `.spec.policyChangeDelay`, retry on rejected pushes, and `.Changed.Summary` (`ImageUpdateAutomation`)\n- Flux artifact storage backend enabled by default for `ImageRepository` tags\n- Cross-namespace artifacts, tenant namespace provisioning, and path-pattern discovery (`ArtifactGenerator`)\n- New Zoom, incident.io and Mastodon notification providers\n- Built with Kubernetes 1.37 and Go 1.27\n\n\u2764\ufe0f Big thanks to all the Flux contributors that helped us with this release!\n\n##### Kubernetes compatibility\n\nThis release is compatible with the following Kubernetes versions:\n\n| Kubernetes version | Minimum required |\n| ------------------ | ---------------- |\n| `v1.35`            | `>= 1.35.2`      |\n| `v1.36`            | `>= 1.36.1`      |\n| `v1.37`            | `>= 1.37.0`      |\n\n> \\[!NOTE]\n> Note that the Flux project offers support only for the latest three minor versions of Kubernetes.\n> Backwards compatibility with older versions of Kubernetes and OpenShift is offered by vendors such as\n> [ControlPlane](https://control-plane.io/enterprise-for-flux-cd/) that provide enterprise support for Flux.\n\n##### OpenShift compatibility\n\nFlux can be installed on Red Hat OpenShift cluster directly from OperatorHub using [Flux Operator](https://operatorhub.io/operator/flux-operator). The operator allows the configuration of Flux multi-tenancy lockdown, network policies, persistent storage, sharding, vertical scaling and the synchronization of the cluster state from Git repositories, OCI artifacts, and S3-compatible storage.\n\n#### Upgrade procedure\n\n\u26a0\ufe0f **Breaking changes in this release:**\n\n- Object identity is always enabled and the default Flux RBAC no longer grants the `create` verb on the `serviceaccounts/token` resource. If your installation relies on the default RBAC, bind a ClusterRole with this permission to the controller ServiceAccount before upgrading. See [fluxcd/flux2#6139](https://redirect.github.com/fluxcd/flux2/pull/6139) for the required ClusterRole and ClusterRoleBinding.\n- The notification `Alert` and `Provider` APIs are promoted to `v1`. Converting a `v1beta3` `Alert` or `Provider` to `v1` drops the deprecated `Alert.spec.summary` and `Provider.spec.interval` fields, the static JWT token for Azure Event Hub, and TLS or proxy configuration in `Provider.spec.secretRef`. Use `eventMetadata.summary`, `proxySecretRef` and `certSecretRef` instead.\n- The Flux artifact storage backend is now the default for the `ImageRepository` tag database. Switching the gate wipes the local tag database, so the first reconciliation after the upgrade rescans every `ImageRepository`. Set `--feature-gates=FluxStorage=false` to keep using BadgerDB.\n- Remote cluster authentication with `.spec.kubeConfig.configMapRef` uses object identity; replace the legacy `audiences` key with `credential.auth.fluxcd.io/audiences`.\n\nPlease follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from older versions of Flux to v2.10.\n\n#### Components changelog\n\n- source-controller [v1.10.1](https://redirect.github.com/fluxcd/source-controller/blob/v1.10.1/CHANGELOG.md)\n- kustomize-controller [v1.10.1](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.10.1/CHANGELOG.md)\n- notification-controller [v1.10.0](https://redirect.github.com/fluxcd/notification-controller/blob/v1.10.0/CHANGELOG.md)\n- helm-controller [v1.7.1](https://redirect.github.com/fluxcd/helm-controller/blob/v1.7.1/CHANGELOG.md)\n- image-reflector-controller [v1.3.0](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.3.0/CHANGELOG.md)\n- image-automation-controller [v1.3.0](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.3.0/CHANGELOG.md)\n- source-watcher [v2.3.1](https://redirect.github.com/fluxcd/source-watcher/blob/v2.3.1/CHANGELOG.md)\n\n#### CLI changelog\n\n- Add backport label for 2.9 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5970](https://redirect.github.com/fluxcd/flux2/pull/5970)\n- Fix breaking change in-memory kustomization build by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5969](https://redirect.github.com/fluxcd/flux2/pull/5969)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5976](https://redirect.github.com/fluxcd/flux2/pull/5976)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5978](https://redirect.github.com/fluxcd/flux2/pull/5978)\n- Add checksum verification for SOPS in e2e workflows by [@&#8203;ivonaest](https://redirect.github.com/ivonaest) in [#&#8203;5961](https://redirect.github.com/fluxcd/flux2/pull/5961)\n- Add --add-ignore-paths flag to artifact commands by [@&#8203;ruslan-shaydullin](https://redirect.github.com/ruslan-shaydullin) in [#&#8203;5885](https://redirect.github.com/fluxcd/flux2/pull/5885)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5983](https://redirect.github.com/fluxcd/flux2/pull/5983)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5989](https://redirect.github.com/fluxcd/flux2/pull/5989)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5993](https://redirect.github.com/fluxcd/flux2/pull/5993)\n- Include source-watcher to oci flux-manifests by [@&#8203;sergelogvinov](https://redirect.github.com/sergelogvinov) in [#&#8203;5995](https://redirect.github.com/fluxcd/flux2/pull/5995)\n- docs: fix typo in RFC-0004 (enviornment -> environment) by [@&#8203;mridulagithub](https://redirect.github.com/mridulagithub) in [#&#8203;6002](https://redirect.github.com/fluxcd/flux2/pull/6002)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6005](https://redirect.github.com/fluxcd/flux2/pull/6005)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6010](https://redirect.github.com/fluxcd/flux2/pull/6010)\n- Add version-file input to the Flux CLI action by [@&#8203;somaz94](https://redirect.github.com/somaz94) in [#&#8203;5975](https://redirect.github.com/fluxcd/flux2/pull/5975)\n- Add support for 2.9 in `migrate -f` by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6020](https://redirect.github.com/fluxcd/flux2/pull/6020)\n- Fix Azure e2e tests after new major version with breaking changes by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6022](https://redirect.github.com/fluxcd/flux2/pull/6022)\n- fix: restrict `allow-webhooks` netpol to receiver port by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6028](https://redirect.github.com/fluxcd/flux2/pull/6028)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6030](https://redirect.github.com/fluxcd/flux2/pull/6030)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6050](https://redirect.github.com/fluxcd/flux2/pull/6050)\n- build(deps): bump the ci group across 1 directory with 19 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;6052](https://redirect.github.com/fluxcd/flux2/pull/6052)\n- Format reproducible created timestamp in UTC by [@&#8203;lexfrei](https://redirect.github.com/lexfrei) in [#&#8203;6074](https://redirect.github.com/fluxcd/flux2/pull/6074)\n- Update to Kubernetes 1.37 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6082](https://redirect.github.com/fluxcd/flux2/pull/6082)\n- Run conformance tests for Kubernetes 1.37 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6083](https://redirect.github.com/fluxcd/flux2/pull/6083)\n- Remove the Cosign v2.6.1 pin by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6084](https://redirect.github.com/fluxcd/flux2/pull/6084)\n- Add `--app-client-id` flag to `create secret githubapp` by [@&#8203;Erik-Schuetze](https://redirect.github.com/Erik-Schuetze) in [#&#8203;6090](https://redirect.github.com/fluxcd/flux2/pull/6090)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6096](https://redirect.github.com/fluxcd/flux2/pull/6096)\n- Match plugin archive entries with a leading ./ by [@&#8203;Saadanjum0](https://redirect.github.com/Saadanjum0) in [#&#8203;6099](https://redirect.github.com/fluxcd/flux2/pull/6099)\n- Stop diff processing after an error by [@&#8203;idelchi](https://redirect.github.com/idelchi) in [#&#8203;6070](https://redirect.github.com/fluxcd/flux2/pull/6070)\n- Respect pruning exclusions in kustomization diff by [@&#8203;idelchi](https://redirect.github.com/idelchi) in [#&#8203;6073](https://redirect.github.com/fluxcd/flux2/pull/6073)\n- Introduce RBAC for ArtifactGenerator cross-namespace artifacts by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6101](https://redirect.github.com/fluxcd/flux2/pull/6101)\n- \\[RFC-0014] Advanced Support for Short-Lived Cryptographic Material by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5702](https://redirect.github.com/fluxcd/flux2/pull/5702)\n- Validate plugin manifest name by [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) in [#&#8203;6104](https://redirect.github.com/fluxcd/flux2/pull/6104)\n- ci: disable Replicated conformance tests by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6111](https://redirect.github.com/fluxcd/flux2/pull/6111)\n- \\[RFC-0014] RFC refinements by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6105](https://redirect.github.com/fluxcd/flux2/pull/6105)\n- \\[RFC-0014] Annotations for AWS STS Endpoint and Docker Hub OIDC Connection by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6114](https://redirect.github.com/fluxcd/flux2/pull/6114)\n- Update to Kubernetes 1.37.1 and Go 1.27 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6117](https://redirect.github.com/fluxcd/flux2/pull/6117)\n- build(deps): bump the ci group across 1 directory with 15 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;6118](https://redirect.github.com/fluxcd/flux2/pull/6118)\n- \\[RFC-0014] Add rules for missing corner cases by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6121](https://redirect.github.com/fluxcd/flux2/pull/6121)\n- \\[RFC-0014] Address final nits arising from apis/crypto implementation by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6122](https://redirect.github.com/fluxcd/flux2/pull/6122)\n- \\[RFC-0014] Final iterations for 2.10 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6125](https://redirect.github.com/fluxcd/flux2/pull/6125)\n- Revert \"Introduce RBAC for ArtifactGenerator cross-namespace artifacts\" by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6129](https://redirect.github.com/fluxcd/flux2/pull/6129)\n- Allow controllers to perform SubjectAccessReview by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6132](https://redirect.github.com/fluxcd/flux2/pull/6132)\n- Accept TYPE/NAME resource args in get/reconcile by [@&#8203;souvik-biswas-dev](https://redirect.github.com/souvik-biswas-dev) in [#&#8203;6134](https://redirect.github.com/fluxcd/flux2/pull/6134)\n- Add digests flag to plugin search, which displays SHA values for all os/arch per binary by [@&#8203;datosh](https://redirect.github.com/datosh) in [#&#8203;6016](https://redirect.github.com/fluxcd/flux2/pull/6016)\n- Extend kubectl-style resource args to all Flux kinds and commands by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6135](https://redirect.github.com/fluxcd/flux2/pull/6135)\n- Escape terminal control characters in CLI output by [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) in [#&#8203;6110](https://redirect.github.com/fluxcd/flux2/pull/6110)\n- Add suspend, resume and reconcile commands for ArtifactGenerator by [@&#8203;xchose](https://redirect.github.com/xchose) in [#&#8203;6119](https://redirect.github.com/fluxcd/flux2/pull/6119)\n- \\[RFC-0014] Address review findings by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6136](https://redirect.github.com/fluxcd/flux2/pull/6136)\n- \\[RFC-0014] Inter-controller mTLS via SPIFFE by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6127](https://redirect.github.com/fluxcd/flux2/pull/6127)\n- Fix proxy bypass in bootstrap --ca-file by [@&#8203;ljluestc](https://redirect.github.com/ljluestc) in [#&#8203;6038](https://redirect.github.com/fluxcd/flux2/pull/6038)\n- use restrictive file modes for generated manifests by [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) in [#&#8203;6113](https://redirect.github.com/fluxcd/flux2/pull/6113)\n- fix(goreleaser): make Homebrew formula pass brew audit by [@&#8203;trademomentumllc](https://redirect.github.com/trademomentumllc) in [#&#8203;5973](https://redirect.github.com/fluxcd/flux2/pull/5973)\n- Fix envsubst dropping input on long lines by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6138](https://redirect.github.com/fluxcd/flux2/pull/6138)\n- fix: return clear error when --private-key-file path starts with '\\~' by [@&#8203;rafaelperoco](https://redirect.github.com/rafaelperoco) in [#&#8203;5859](https://redirect.github.com/fluxcd/flux2/pull/5859)\n- Fix stale flags and commands in CLI examples by [@&#8203;rawsun007](https://redirect.github.com/rawsun007) in [#&#8203;6123](https://redirect.github.com/fluxcd/flux2/pull/6123)\n- Fix typos in user-facing CLI messages and comments by [@&#8203;MsfPablo](https://redirect.github.com/MsfPablo) in [#&#8203;6051](https://redirect.github.com/fluxcd/flux2/pull/6051)\n- Remove unused fields from installFlags by [@&#8203;Pranav-error](https://redirect.github.com/Pranav-error) in [#&#8203;6061](https://redirect.github.com/fluxcd/flux2/pull/6061)\n- \u26a0\ufe0f Breaking change: Harden RBAC for controllers by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6139](https://redirect.github.com/fluxcd/flux2/pull/6139)\n- Fix `--in-memory-build` restricting disk access by [@&#8203;rycli](https://redirect.github.com/rycli) in [#&#8203;5974](https://redirect.github.com/fluxcd/flux2/pull/5974)\n- Update dependencies for Flux 2.10 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6140](https://redirect.github.com/fluxcd/flux2/pull/6140)\n- \\[RFC-0014] Add 2.10 notes to RFC by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6145](https://redirect.github.com/fluxcd/flux2/pull/6145)\n- fix(create): reject conflicting image policy selectors for every flag pair by [@&#8203;NUAAwqy](https://redirect.github.com/NUAAwqy) in [#&#8203;6144](https://redirect.github.com/fluxcd/flux2/pull/6144)\n- ci: Update GitHub Actions by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6147](https://redirect.github.com/fluxcd/flux2/pull/6147)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6148](https://redirect.github.com/fluxcd/flux2/pull/6148)\n- Add `--policy-change-delay` to create image update by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6146](https://redirect.github.com/fluxcd/flux2/pull/6146)\n- \\[RFC-0014] Remove temporary workarounds for mTLS e2e by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;6137](https://redirect.github.com/fluxcd/flux2/pull/6137)\n- \\[RFC-0014] Add HTTPS port to controller Services by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6149](https://redirect.github.com/fluxcd/flux2/pull/6149)\n- \\[RFC-0014] Include SPIFFE mTLS in the e2e workflow by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6150](https://redirect.github.com/fluxcd/flux2/pull/6150)\n- ci: fix goreleaser signing with cosign v3 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6151](https://redirect.github.com/fluxcd/flux2/pull/6151)\n- Remove unsupported fields in migrate -f by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6152](https://redirect.github.com/fluxcd/flux2/pull/6152)\n- Bump minimum Kubernetes version to 1.35 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6153](https://redirect.github.com/fluxcd/flux2/pull/6153)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6154](https://redirect.github.com/fluxcd/flux2/pull/6154)\n- Use podinfo in the SPIFFE mTLS e2e test by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;6156](https://redirect.github.com/fluxcd/flux2/pull/6156)\n\n#### New Contributors\n\n- [@&#8203;ivonaest](https://redirect.github.com/ivonaest) made their first contribution in [#&#8203;5961](https://redirect.github.com/fluxcd/flux2/pull/5961)\n- [@&#8203;ruslan-shaydullin](https://redirect.github.com/ruslan-shaydullin) made their first contribution in [#&#8203;5885](https://redirect.github.com/fluxcd/flux2/pull/5885)\n- [@&#8203;sergelogvinov](https://redirect.github.com/sergelogvinov) made their first contribution in [#&#8203;5995](https://redirect.github.com/fluxcd/flux2/pull/5995)\n- [@&#8203;mridulagithub](https://redirect.github.com/mridulagithub) made their first contribution in [#&#8203;6002](https://redirect.github.com/fluxcd/flux2/pull/6002)\n- [@&#8203;somaz94](https://redirect.github.com/somaz94) made their first contribution in [#&#8203;5975](https://redirect.github.com/fluxcd/flux2/pull/5975)\n- [@&#8203;lexfrei](https://redirect.github.com/lexfrei) made their first contribution in [#&#8203;6074](https://redirect.github.com/fluxcd/flux2/pull/6074)\n- [@&#8203;Erik-Schuetze](https://redirect.github.com/Erik-Schuetze) made their first contribution in [#&#8203;6090](https://redirect.github.com/fluxcd/flux2/pull/6090)\n- [@&#8203;Saadanjum0](https://redirect.github.com/Saadanjum0) made their first contribution in [#&#8203;6099](https://redirect.github.com/fluxcd/flux2/pull/6099)\n- [@&#8203;idelchi](https://redirect.github.com/idelchi) made their first contribution in [#&#8203;6070](https://redirect.github.com/fluxcd/flux2/pull/6070)\n- [@&#8203;Arawoof06](https://redirect.github.com/Arawoof06) made their first contribution in [#&#8203;6104](https://redirect.github.com/fluxcd/flux2/pull/6104)\n- [@&#8203;souvik-biswas-dev](https://redirect.github.com/souvik-biswas-dev) made their first contribution in [#&#8203;6134](https://redirect.github.com/fluxcd/flux2/pull/6134)\n- [@&#8203;datosh](https://redirect.github.com/datosh) made their first contribution in [#&#8203;6016](https://redirect.github.com/fluxcd/flux2/pull/6016)\n- [@&#8203;xchose](https://redirect.github.com/xchose) made their first contribution in [#&#8203;6119](https://redirect.github.com/fluxcd/flux2/pull/6119)\n- [@&#8203;ljluestc](https://redirect.github.com/ljluestc) made their first contribution in [#&#8203;6038](https://redirect.github.com/fluxcd/flux2/pull/6038)\n- [@&#8203;trademomentumllc](https://redirect.github.com/trademomentumllc) made their first contribution in [#&#8203;5973](https://redirect.github.com/fluxcd/flux2/pull/5973)\n- [@&#8203;rawsun007](https://redirect.github.com/rawsun007) made their first contribution in [#&#8203;6123](https://redirect.github.com/fluxcd/flux2/pull/6123)\n- [@&#8203;MsfPablo](https://redirect.github.com/MsfPablo) made their first contribution in [#&#8203;6051](https://redirect.github.com/fluxcd/flux2/pull/6051)\n- [@&#8203;Pranav-error](https://redirect.github.com/Pranav-error) made their first contribution in [#&#8203;6061](https://redirect.github.com/fluxcd/flux2/pull/6061)\n- [@&#8203;NUAAwqy](https://redirect.github.com/NUAAwqy) made their first contribution in [#&#8203;6144](https://redirect.github.com/fluxcd/flux2/pull/6144)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.6...v2.10.0>\n\n### [`v2.9.6`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.6)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.5...v2.9.6)\n\n#### Highlights\n\nFlux v2.9.6 is a patch release that stops helm-controller from reapplying chart CRDs on every upgrade when server-side apply is enabled, and recovers HelmReleases left with a drifted `Ready=Unknown` condition after a failed status patch. source-controller normalizes Azure Blob listing ETags so unchanged containers are no longer re-downloaded on every reconcile, and evicts stale Helm repository index entries from the cache so repositories with frequently changing indexes no longer fail with \"Cache is full\". kustomize-controller extends SOPS decryption error redaction to `spec.postBuild.substituteFrom` values, so substituted secrets echoed back in API validation errors are masked out of status conditions and events, and adds the opt-in `DisableCommitStatusEvent` feature gate. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Stop reapplying chart CRDs on upgrades when using server-side apply with the default `Create` policy (helm-controller)\n- Recover HelmReleases stranded with a drifted `Ready=Unknown` condition after a failed status patch (helm-controller)\n- Ignore `NotFound` when deleting the HelmChart (helm-controller)\n- Normalize Azure Blob listing ETags so unchanged containers are not re-downloaded on every reconcile (source-controller)\n- Evict stale Helm repository index entries from the cache to avoid \"Cache is full\" errors (source-controller)\n- Extend SOPS decryption error redaction to `spec.postBuild.substituteFrom` values (kustomize-controller)\n\nImprovements:\n\n- Add the opt-in `DisableCommitStatusEvent` feature gate (kustomize-controller)\n\n#### Components changelog\n\n- source-controller [v1.9.6](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.6/CHANGELOG.md)\n- kustomize-controller [v1.9.6](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.6/CHANGELOG.md)\n- helm-controller [v1.6.5](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.5/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Format reproducible created timestamp in UTC by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6081](https://redirect.github.com/fluxcd/flux2/pull/6081)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6097](https://redirect.github.com/fluxcd/flux2/pull/6097)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.5...v2.9.6>\n\n### [`v2.9.5`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.5)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.4...v2.9.5)\n\n#### Highlights\n\nFlux v2.9.5 is a patch release that moves helm-controller and source-controller back to upstream Helm, now at v4.2.4, dropping the temporary Flux fork. It hardens the handling of kubeconfig Secrets in helm-controller and kustomize-controller, which now reject kubeconfigs referencing files on the local filesystem and require credentials and certificates to be embedded inline. It also stops kustomize-controller from leaving behind the temporary directories of a previous process that exited without running its cleanup, and fixes a crash in post-build substitution where a substring expression with a negative length, e.g. `${VAR:2:-1}`, panicked instead of counting back from the end of the string like Bash does. Across all controllers and the CLI, the fluxcd/pkg dependencies have been updated, bringing Kubernetes to 1.36.4. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Validate kubeconfigs from `.spec.kubeConfig` Secrets, rejecting local file references in `certificate-authority`, `tokenFile`, `client-certificate` and `client-key`; credentials and certificates must be embedded inline (helm-controller, kustomize-controller)\n- Purge temporary directories at startup (kustomize-controller)\n- Fix panic on negative-length substring expressions in post-build substitution (kustomize-controller, flux CLI)\n\nImprovements:\n\n- Move back to upstream Helm v4.2.4, dropping the Flux fork (helm-controller, source-controller)\n- Update fluxcd/pkg dependencies, which bring Kubernetes to 1.36.4 (all controllers, flux CLI)\n\n#### Components changelog\n\n- source-controller [v1.9.5](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.5/CHANGELOG.md)\n- source-watcher [v2.2.4](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.4/CHANGELOG.md)\n- kustomize-controller [v1.9.5](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.5/CHANGELOG.md)\n- helm-controller [v1.6.4](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.4/CHANGELOG.md)\n- notification-controller [v1.9.4](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.4/CHANGELOG.md)\n- image-reflector-controller [v1.2.5](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.5/CHANGELOG.md)\n- image-automation-controller [v1.2.5](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.5/CHANGELOG.md)\n\n#### CLI changelog\n\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6046](https://redirect.github.com/fluxcd/flux2/pull/6046)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6048](https://redirect.github.com/fluxcd/flux2/pull/6048)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6049](https://redirect.github.com/fluxcd/flux2/pull/6049)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.4...v2.9.5>\n\n### [`v2.9.4`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.4)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.3...v2.9.4)\n\n#### Highlights\n\nFlux v2.9.4 is a patch release that ships various fixes to the Flux controllers, covering source-watcher tarball extraction and glob expansion limits, the refspecs accepted by `ImageUpdateAutomation`, the HTTP request limits of the notification-controller servers, and Helm repository index loading, OCI chart digest pinning, `Bucket` error handling and GCS static authentication in source-controller. On the CLI side, `flux migrate -f` now supports migrating repositories to Flux 2.9. Users are encouraged to upgrade for the best experience.\n\nNote that this release contains CRD schema changes for `ArtifactGenerator` and `ImageUpdateAutomation`; both CRDs must be updated along with the controllers.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Confine tarball extraction and bound glob expansion (source-watcher)\n- Disallow force-update and deletion via refspecs (image-automation-controller)\n- Unify HTTP server request limits (notification-controller)\n- Align Helm repository index loading with upstream Helm v4 (source-controller)\n- Improve error handling in `Bucket` reconciliation (source-controller)\n- Pin OCI chart verification by digest (source-controller)\n- Limit GCS static authentication to service account keys (source-controller)\n- Restrict the `allow-webhooks` network policy to the receiver port (flux CLI)\n\nImprovements:\n\n- Add support for migrating repositories to 2.9 in `flux migrate -f` (flux CLI)\n- Update fluxcd/pkg dependencies, which align the ECR host detection with upstream (source-controller, image-reflector-controller, flux CLI)\n- Update Bitbucket Cloud receiver guidance (notification-controller)\n\n#### Components changelog\n\n- source-controller [v1.9.4](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.4/CHANGELOG.md)\n- source-watcher [v2.2.3](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.3/CHANGELOG.md)\n- notification-controller [v1.9.3](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.3/CHANGELOG.md)\n- image-reflector-controller [v1.2.4](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.4/CHANGELOG.md)\n- image-automation-controller [v1.2.4](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.4/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Add support for 2.9 in `migrate -f` by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6021](https://redirect.github.com/fluxcd/flux2/pull/6021)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6026](https://redirect.github.com/fluxcd/flux2/pull/6026)\n- \\[release/v2.9.x] fix: restrict `allow-webhooks` netpol to receiver port by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6029](https://redirect.github.com/fluxcd/flux2/pull/6029)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6031](https://redirect.github.com/fluxcd/flux2/pull/6031)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.3...v2.9.4>\n\n### [`v2.9.3`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.3)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.2...v2.9.3)\n\n#### Highlights\n\nFlux v2.9.3 is a patch release. It fixes empty lines vanishing from rendered Helm chart manifests, HelmReleases being marked as tested when their Helm test hooks never ran, and `spec.images` entries that set only some image fields discarding the remaining fields already declared for the same image in the `kustomization.yaml`. The latter affects both kustomize-controller and the `flux build|diff kustomization` commands. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Fix empty lines vanishing from rendered chart manifests (helm-controller)\n- Fix `HasBeenTested` for all corner cases, where a release could be marked as tested although its Helm test hooks never ran (helm-controller)\n- Fix a `spec.images` entry setting only some of the image fields discarding the remaining fields already declared for the same image in the `kustomization.yaml` at `spec.path`, e.g. overriding only `newName` produced an untagged image reference (kustomize-controller, flux CLI)\n\nImprovements:\n\n- Update fluxcd/pkg dependencies\n- Include source-watcher in the OCI flux-manifests artifact\n\n#### Components changelog\n\n- kustomize-controller [v1.9.4](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.4/CHANGELOG.md)\n- helm-controller [v1.6.3](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.3/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Include source-watcher to oci flux-manifests by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5996](https://redirect.github.com/fluxcd/flux2/pull/5996)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6006](https://redirect.github.com/fluxcd/flux2/pull/6006)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;6011](https://redirect.github.com/fluxcd/flux2/pull/6011)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.2...v2.9.3>\n\n### [`v2.9.2`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.2)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.1...v2.9.2)\n\n#### Highlights\n\nFlux v2.9.2 is a patch release. The main fix addresses a regression introduced in\nv2.9.1 where a Kustomization with `openapi.path` pointing to a URL failed to\nreconcile with `failed to read OpenAPI schema`. This release also corrects several\nCRD field descriptions that contained inaccurate or leaked content. Users are\nencouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Fix a regression where a Kustomization with `openapi.path` pointing to a URL failed to reconcile with `failed to read OpenAPI schema` (kustomize-controller)\n- Fix the `HelmChart` CRD description for `.status.url`, which pointed users at `BucketStatus.Artifact` instead of `HelmChartStatus.Artifact` (source-controller)\n- Fix the `ImageRepository` CRD description for `.status.observedExclusionList`, which referred to `spec.lastScanResult` instead of `status.lastScanResult` (image-reflector-controller)\n- Fix the `ImageUpdateAutomation` CRD description for `.status.observedSourceRevision`, which had a stray Go struct declaration leaking into it (image-automation-controller)\n\nImprovements:\n\n- Update fluxcd/pkg dependencies\n\n#### Components changelog\n\n- source-controller [v1.9.3](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.3/CHANGELOG.md)\n- kustomize-controller [v1.9.3](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.3/CHANGELOG.md)\n- helm-controller [v1.6.2](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.2/CHANGELOG.md)\n- notification-controller [v1.9.2](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.2/CHANGELOG.md)\n- image-reflector-controller [v1.2.3](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.3/CHANGELOG.md)\n- image-automation-controller [v1.2.3](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.3/CHANGELOG.md)\n- source-watcher [v2.2.2](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.2/CHANGELOG.md)\n\n#### CLI changelog\n\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5984](https://redirect.github.com/fluxcd/flux2/pull/5984)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5990](https://redirect.github.com/fluxcd/flux2/pull/5990)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5994](https://redirect.github.com/fluxcd/flux2/pull/5994)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.1...v2.9.2>\n\n### [`v2.9.1`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.1)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.9.0...v2.9.1)\n\n#### Highlights\n\nFlux v2.9.1 is a patch release. The main fix, applied across all controllers, disables Flux variable substitution on the Flux CRDs by annotating them with `kustomize.toolkit.fluxcd.io/substitute: disabled`, so that Kustomizations with post-build substitution enabled no longer corrupt the CRD schemas when they contain `${...}` sequences. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Disable Flux variable substitution on all Flux CRDs, preventing post-build substitution from corrupting CRD schemas that contain `${...}` sequences (all controllers)\n- Update SOPS dependency to fix `.ini` file decryption (kustomize-controller)\n- Fix a dry-run error where applying a resource with a strategic merge patch could fail with `<resource> is invalid` (kustomize-controller)\n- Fix a breaking change in the in-memory Kustomization build (Flux CLI)\n\nImprovements:\n\n- Cache the registry authorization token during Notation verification, so it is fetched once per verification instead of once per request (source-controller)\n- Update fluxcd/pkg dependencies\n\n#### Components changelog\n\n- source-controller [v1.9.2](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.2/CHANGELOG.md)\n- kustomize-controller [v1.9.2](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.2/CHANGELOG.md)\n- helm-controller [v1.6.2](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.2/CHANGELOG.md)\n- notification-controller [v1.9.2](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.2/CHANGELOG.md)\n- image-reflector-controller [v1.2.2](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.2/CHANGELOG.md)\n- image-automation-controller [v1.2.2](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.2/CHANGELOG.md)\n- source-watcher [v2.2.2](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.2/CHANGELOG.md)\n\n#### CLI changelog\n\n- \\[release/v2.9.x] Fix breaking change in-memory kustomization build by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5971](https://redirect.github.com/fluxcd/flux2/pull/5971)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5977](https://redirect.github.com/fluxcd/flux2/pull/5977)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5979](https://redirect.github.com/fluxcd/flux2/pull/5979)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.9.0...v2.9.1>\n\n### [`v2.9.0`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.9.0)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.8.8...v2.9.0)\n\n#### Highlights\n\nFlux v2.9.0 is a feature release. Users are encouraged to upgrade for the best experience.\n\nFor a compressive overview of new features and API changes included in this release, please refer to the [Announcing Flux 2.9 GA blog post](https://fluxcd.io/blog/2026/06/flux-v2.9.0/).\n\nOverview of the new features:\n\n- Flux CLI Plugin System with the Mirror and Schema plugins (`flux plugin`)\n- Server-Side Apply field ignore rules for fine-grained drift control (`Kustomization`)\n- SOPS decryption with the Age post-quantum cipher (`Kustomization`)\n- Kubernetes Workload Identity authentication for OpenBao and Vault (`Kustomization`)\n- Helm post-render strategies, including chart hooks support (`HelmRelease`)\n- Literal mode for Helm values references mirroring `helm --set-literal` (`HelmRelease`)\n- Allow empty kind in CEL health check expressions (`Kustomization`, `HelmRelease`)\n- Git commit signing and verification with SSH keys (`GitRepository`, `ImageUpdateAutomation`)\n- AWS CodeCommit authentication using Workload Identity (`GitRepository`)\n- Custom Sigstore trusted root for keyless verification in air-gapped environments (`OCIRepository`)\n- Path pattern directory discovery for monorepos (`ArtifactGenerator`)\n- Secret-less, OIDC-secured webhook Receivers (`Receiver`)\n\n\u2764\ufe0f Big thanks to all the Flux contributors that helped us with this release!\n\n##### Kubernetes compatibility\n\nThis release is compatible with the following Kubernetes versions:\n\n| Kubernetes version | Minimum required |\n| ------------------ | ---------------- |\n| `v1.34`            | `>= 1.34.1`      |\n| `v1.35`            | `>= 1.35.0`      |\n| `v1.36`            | `>= 1.36.0`      |\n\n> \\[!NOTE]\n> Note that the Flux project offers support only for the latest three minor versions of Kubernetes.\n> Backwards compatibility with older versions of Kubernetes and OpenShift is offered by vendors such as\n> [ControlPlane](https://control-plane.io/enterprise-for-flux-cd/) that provide enterprise support for Flux.\n\n##### OpenShift compatibility\n\nFlux can be installed on Red Hat OpenShift cluster directly from OperatorHub using [Flux Operator](https://operatorhub.io/operator/flux-operator). The operator allows the configuration of Flux multi-tenancy lockdown, network policies, persistent storage, sharding, vertical scaling and the synchronization of the cluster state from Git repositories, OCI artifacts, and S3-compatible storage.\n\n#### Upgrade procedure\n\n:warning: The Flux APIs `image.toolkit.fluxcd.io/v1beta2` and `notification.toolkit.fluxcd.io/v1beta2`\nhave reached end-of-life and have been removed from the CRDs.\n\nPlease follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from older versions of Flux to v2.9.\n\n#### Components changelog\n\n- source-controller [v1.9.1](https://redirect.github.com/fluxcd/source-controller/blob/v1.9.1/CHANGELOG.md)\n- kustomize-controller [v1.9.1](https://redirect.github.com/fluxcd/kustomize-controller/blob/v1.9.1/CHANGELOG.md)\n- notification-controller [v1.9.1](https://redirect.github.com/fluxcd/notification-controller/blob/v1.9.1/CHANGELOG.md)\n- helm-controller [v1.6.1](https://redirect.github.com/fluxcd/helm-controller/blob/v1.6.1/CHANGELOG.md)\n- image-reflector-controller [v1.2.1](https://redirect.github.com/fluxcd/image-reflector-controller/blob/v1.2.1/CHANGELOG.md)\n- image-automation-controller [v1.2.1](https://redirect.github.com/fluxcd/image-automation-controller/blob/v1.2.1/CHANGELOG.md)\n- source-watcher [v2.2.1](https://redirect.github.com/fluxcd/source-watcher/blob/v2.2.1/CHANGELOG.md)\n\n#### CLI changelog\n\n- Add backport label for Flux 2.8 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5732](https://redirect.github.com/fluxcd/flux2/pull/5732)\n- Remove no longer needed workaround for Flux 2.8 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5733](https://redirect.github.com/fluxcd/flux2/pull/5733)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5740](https://redirect.github.com/fluxcd/flux2/pull/5740)\n- Add missing things to release notes template by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5743](https://redirect.github.com/fluxcd/flux2/pull/5743)\n- ci: add top-level permissions to upgrade-fluxcd-pkg workflow by [@&#8203;gaganhr94](https://redirect.github.com/gaganhr94) in [#&#8203;5763](https://redirect.github.com/fluxcd/flux2/pull/5763)\n- build(deps): bump the ci group across 1 directory with 11 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5764](https://redirect.github.com/fluxcd/flux2/pull/5764)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5766](https://redirect.github.com/fluxcd/flux2/pull/5766)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5769](https://redirect.github.com/fluxcd/flux2/pull/5769)\n- Add target branch name to update branch by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5773](https://redirect.github.com/fluxcd/flux2/pull/5773)\n- Fix/resume exit code by [@&#8203;Aman-Cool](https://redirect.github.com/Aman-Cool) in [#&#8203;5701](https://redirect.github.com/fluxcd/flux2/pull/5701)\n- Mark RFC 0010, 0011 and 0012 as implemented by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5776](https://redirect.github.com/fluxcd/flux2/pull/5776)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5780](https://redirect.github.com/fluxcd/flux2/pull/5780)\n- Add --resolve-symlinks flag to build and push artifact commands by [@&#8203;rohansood10](https://redirect.github.com/rohansood10) in [#&#8203;5724](https://redirect.github.com/fluxcd/flux2/pull/5724)\n- fix: validate --source flag in create kustomization command by [@&#8203;gma1k](https://redirect.github.com/gma1k) in [#&#8203;5798](https://redirect.github.com/fluxcd/flux2/pull/5798)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5821](https://redirect.github.com/fluxcd/flux2/pull/5821)\n- Add `--show-source` to `flux get ks` and `flux get hr`  by [@&#8203;rafaelperoco](https://redirect.github.com/rafaelperoco) in [#&#8203;5828](https://redirect.github.com/fluxcd/flux2/pull/5828)\n- Add `flux create secret receiver` command by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5835](https://redirect.github.com/fluxcd/flux2/pull/5835)\n- fix: handle multiple symlinks to same target in build artifact by [@&#8203;Iam-Karan-Suresh](https://redirect.github.com/Iam-Karan-Suresh) in [#&#8203;5833](https://redirect.github.com/fluxcd/flux2/pull/5833)\n- Add `--in-memory-build` to `flux build ks` and `flux diff ks` by [@&#8203;rycli](https://redirect.github.com/rycli) in [#&#8203;5794](https://redirect.github.com/fluxcd/flux2/pull/5794)\n- Migrate end-to-end test to latest cloud SDKs  by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5840](https://redirect.github.com/fluxcd/flux2/pull/5840)\n- docs: Add AI Coding Assistants Guidance  by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5841](https://redirect.github.com/fluxcd/flux2/pull/5841)\n- Add AI Agents guidance by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5847](https://redirect.github.com/fluxcd/flux2/pull/5847)\n- \\[RFC-0013] Flux CLI Plugin System by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5795](https://redirect.github.com/fluxcd/flux2/pull/5795)\n- Add `--ignore-not-found` to `flux diff ks` by [@&#8203;rycli](https://redirect.github.com/rycli) in [#&#8203;5845](https://redirect.github.com/fluxcd/flux2/pull/5845)\n- \\[RFC-0013] Implement plugin system by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5849](https://redirect.github.com/fluxcd/flux2/pull/5849)\n- build(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.18.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5853](https://redirect.github.com/fluxcd/flux2/pull/5853)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5856](https://redirect.github.com/fluxcd/flux2/pull/5856)\n- Add digest pinning support to `flux plugin install` by [@&#8203;Iam-Karan-Suresh](https://redirect.github.com/Iam-Karan-Suresh) in [#&#8203;5872](https://redirect.github.com/fluxcd/flux2/pull/5872)\n- Add `--ns-follows-kube-context` global flag for using the kubeconfig context namespace by [@&#8203;jtyr](https://redirect.github.com/jtyr) in [#&#8203;5831](https://redirect.github.com/fluxcd/flux2/pull/5831)\n- include source-watcher in install.yaml manifests by [@&#8203;tmmorin](https://redirect.github.com/tmmorin) in [#&#8203;5881](https://redirect.github.com/fluxcd/flux2/pull/5881)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5890](https://redirect.github.com/fluxcd/flux2/pull/5890)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5903](https://redirect.github.com/fluxcd/flux2/pull/5903)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5907](https://redirect.github.com/fluxcd/flux2/pull/5907)\n- Validate Helm source URL schemes by [@&#8203;immanuwell](https://redirect.github.com/immanuwell) in [#&#8203;5909](https://redirect.github.com/fluxcd/flux2/pull/5909)\n- Introduce `flux trigger receiver` by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5908](https://redirect.github.com/fluxcd/flux2/pull/5908)\n- refactor(api): migrate MakeDependsOn to shared apis/meta func by [@&#8203;vecil](https://redirect.github.com/vecil) in [#&#8203;5912](https://redirect.github.com/fluxcd/flux2/pull/5912)\n- Update to Kubernetes 1.36 and Go 1.26 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5924](https://redirect.github.com/fluxcd/flux2/pull/5924)\n- build(deps): bump the ci group across 1 directory with 19 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5925](https://redirect.github.com/fluxcd/flux2/pull/5925)\n- Run conformance tests for Kubernetes 1.36 by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5926](https://redirect.github.com/fluxcd/flux2/pull/5926)\n- Add support for AWS CodeCommit to `flux bootstrap git` by [@&#8203;taraspos](https://redirect.github.com/taraspos) in [#&#8203;5868](https://redirect.github.com/fluxcd/flux2/pull/5868)\n- Validate plugin binary path by [@&#8203;stefanprodan](https://redirect.github.com/stefanprodan) in [#&#8203;5927](https://redirect.github.com/fluxcd/flux2/pull/5927)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5928](https://redirect.github.com/fluxcd/flux2/pull/5928)\n- fix: preserve invalid metadata.labels in `flux build ks` by [@&#8203;raffis](https://redirect.github.com/raffis) in [#&#8203;5906](https://redirect.github.com/fluxcd/flux2/pull/5906)\n- build: target host arch for local builds/envtest by [@&#8203;stealthybox](https://redirect.github.com/stealthybox) in [#&#8203;5932](https://redirect.github.com/fluxcd/flux2/pull/5932)\n- build(deps): bump the ci group with 6 updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in [#&#8203;5938](https://redirect.github.com/fluxcd/flux2/pull/5938)\n- Support specifing sparseCheckout in flux bootstrap by [@&#8203;piny940](https://redirect.github.com/piny940) in [#&#8203;5918](https://redirect.github.com/fluxcd/flux2/pull/5918)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5944](https://redirect.github.com/fluxcd/flux2/pull/5944)\n- Honor `ks.spec.postBuild.substituteStrategy` by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5945](https://redirect.github.com/fluxcd/flux2/pull/5945)\n- Add DriftIgnoreRules support to flux diff kustomization by [@&#8203;dipti-pai](https://redirect.github.com/dipti-pai) in [#&#8203;5923](https://redirect.github.com/fluxcd/flux2/pull/5923)\n- Allow signing commits using SSH key by [@&#8203;hiddeco](https://redirect.github.com/hiddeco) in [#&#8203;5920](https://redirect.github.com/fluxcd/flux2/pull/5920)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5950](https://redirect.github.com/fluxcd/flux2/pull/5950)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5937](https://redirect.github.com/fluxcd/flux2/pull/5937)\n- cmd: support `type!=status` in get --status-selector by [@&#8203;3uzbcqje](https://redirect.github.com/3uzbcqje) in [#&#8203;5952](https://redirect.github.com/fluxcd/flux2/pull/5952)\n- Fix `flux get all --status-selector` for empty results and notification resources by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5954](https://redirect.github.com/fluxcd/flux2/pull/5954)\n- Upgrade go-git-providers to v0.27.0 by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5956](https://redirect.github.com/fluxcd/flux2/pull/5956)\n- Fix using Receiver adapter for ArtifactGenerator by [@&#8203;matheuscscp](https://redirect.github.com/matheuscscp) in [#&#8203;5957](https://redirect.github.com/fluxcd/flux2/pull/5957)\n- feat: Install Plugins alongside Flux setup in gh actions by [@&#8203;gat786](https://redirect.github.com/gat786) in [#&#8203;5955](https://redirect.github.com/fluxcd/flux2/pull/5955)\n- Update fluxcd/pkg dependencies by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5960](https://redirect.github.com/fluxcd/flux2/pull/5960)\n- Add CLI support for OCIRepository.spec.layerSelector in flux create source oci by [@&#8203;dme86](https://redirect.github.com/dme86) in [#&#8203;5892](https://redirect.github.com/fluxcd/flux2/pull/5892)\n- Update toolkit components by [@&#8203;fluxcdbot](https://redirect.github.com/fluxcdbot) in [#&#8203;5963](https://redirect.github.com/fluxcd/flux2/pull/5963)\n\n#### New Contributors\n\n- [@&#8203;gaganhr94](https://redirect.github.com/gaganhr94) made their first contribution in [#&#8203;5763](https://redirect.github.com/fluxcd/flux2/pull/5763)\n- [@&#8203;rohansood10](https://redirect.github.com/rohansood10) made their first contribution in [#&#8203;5724](https://redirect.github.com/fluxcd/flux2/pull/5724)\n- [@&#8203;gma1k](https://redirect.github.com/gma1k) made their first contribution in [#&#8203;5798](https://redirect.github.com/fluxcd/flux2/pull/5798)\n- [@&#8203;rafaelperoco](https://redirect.github.com/rafaelperoco) made their first contribution in [#&#8203;5828](https://redirect.github.com/fluxcd/flux2/pull/5828)\n- [@&#8203;Iam-Karan-Suresh](https://redirect.github.com/Iam-Karan-Suresh) made their first contribution in [#&#8203;5833](https://redirect.github.com/fluxcd/flux2/pull/5833)\n- [@&#8203;rycli](https://redirect.github.com/rycli) made their first contribution in [#&#8203;5794](https://redirect.github.com/fluxcd/flux2/pull/5794)\n- [@&#8203;jtyr](https://redirect.github.com/jtyr) made their first contribution in [#&#8203;5831](https://redirect.github.com/fluxcd/flux2/pull/5831)\n- [@&#8203;tmmorin](https://redirect.github.com/tmmorin) made their first contribution in [#&#8203;5881](https://redirect.github.com/fluxcd/flux2/pull/5881)\n- [@&#8203;immanuwell](https://redirect.github.com/immanuwell) made their first contribution in [#&#8203;5909](https://redirect.github.com/fluxcd/flux2/pull/5909)\n- [@&#8203;vecil](https://redirect.github.com/vecil) made their first contribution in [#&#8203;5912](https://redirect.github.com/fluxcd/flux2/pull/5912)\n- [@&#8203;taraspos](https://redirect.github.com/taraspos) made their first contribution in [#&#8203;5868](https://redirect.github.com/fluxcd/flux2/pull/5868)\n- [@&#8203;piny940](https://redirect.github.com/piny940) made their first contribution in [#&#8203;5918](https://redirect.github.com/fluxcd/flux2/pull/5918)\n- [@&#8203;3uzbcqje](https://redirect.github.com/3uzbcqje) made their first contribution in [#&#8203;5952](https://redirect.github.com/fluxcd/flux2/pull/5952)\n- [@&#8203;gat786](https://redirect.github.com/gat786) made their first contribution in [#&#8203;5955](https://redirect.github.com/fluxcd/flux2/pull/5955)\n- [@&#8203;dme86](https://redirect.github.com/dme86) made their first contribution in [#&#8203;5892](https://redirect.github.com/fluxcd/flux2/pull/5892)\n\n**Full Changelog**: <https://github.com/fluxcd/flux2/compare/v2.8.0...v2.9.0>\n\n### [`v2.8.8`](https://redirect.github.com/fluxcd/flux2/releases/tag/v2.8.8)\n\n[Compare Source](https://redirect.github.com/fluxcd/flux2/compare/v2.8.7...v2.8.8)\n\n#### Highlights\n\nFlux v2.8.8 is a patch release that includes CVE fixes via go-git v5.19.1 (source-controller, image-automation-controller), reliability fixes in helm-controller and source-controller, the move of Helm back to upstream v4.2.0, support for GCP sovereign cloud artifact registries, and dependency updates. Users are encouraged to upgrade for the best experience.\n\n\u2139\ufe0f Please follow the [Upgrade Procedure for Flux v2.7+](https://redirect.github.com/fluxcd/flux2/discussions/5572) for a smooth upgrade from Flux v2.6 to the latest version.\n\nFixes:\n\n- Add a configurable HTTP timeout for artifact fetching, preventing fetches that could block indefinitely and stall reconciliations (helm-controller)\n- Fix unbounded memory growth caused by a Kubernetes client transport retry wrapper accumulating on every reconcile (helm-controller)\n- Stop force-applying non-CRD objects placed under\n\n> [!IMPORTANT]\n> \u2702 PR body was truncated to here.\n\n\n</details>\n\n---\n\n### Configuration\n\n\ud83d\udcc5 **Schedule**: (UTC)\n\n- Branch creation\n  - At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule defined)\n\n\ud83d\udea6 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n\u267b **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n\ud83d\udd15 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/vexxhost/atmosphere.common).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n",
                                            "change_url": "https://github.com/vexxhost/atmosphere.common/pull/102",
                                            "commit_id": "a36257f5fbc3fd25c301483d3e9119bbd1006d60",
                                            "patchset": "a36257f5fbc3fd25c301483d3e9119bbd1006d60",
                                            "project": {
                                                "canonical_hostname": "github.com",
                                                "canonical_name": "github.com/vexxhost/atmosphere.common",
                                                "name": "vexxhost/atmosphere.common",
                                                "short_name": "atmosphere.common",
                                                "src_dir": "src/github.com/vexxhost/atmosphere.common"
                                            },
                                            "topic": null
                                        }
                                    ],
                                    "collections_path": "/home/zuul/.ansible/collections",
                                    "executable": "uv",
                                    "project_dir": "src/github.com/vexxhost/atmosphere.common",
                                    "projects": [
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/ansible-collections/ansible.posix",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "0f4453f85ee993687a4cab860e3b55438144f920",
                                            "name": "ansible-collections/ansible.posix",
                                            "required": true,
                                            "short_name": "ansible.posix",
                                            "src_dir": "src/github.com/ansible-collections/ansible.posix"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/ansible-collections/community.crypto",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "1bdefe5f420bb2d38cf92ea109ca39e1d4372347",
                                            "name": "ansible-collections/community.crypto",
                                            "required": true,
                                            "short_name": "community.crypto",
                                            "src_dir": "src/github.com/ansible-collections/community.crypto"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/ansible-collections/community.general",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "38b58234b9d0241d1b0f31be5ec84e5c88c006c5",
                                            "name": "ansible-collections/community.general",
                                            "required": true,
                                            "short_name": "community.general",
                                            "src_dir": "src/github.com/ansible-collections/community.general"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/ansible-collections/kubernetes.core",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "782672d2fdb0004d593440a3ddd4b9db014d9e4b",
                                            "name": "ansible-collections/kubernetes.core",
                                            "required": true,
                                            "short_name": "kubernetes.core",
                                            "src_dir": "src/github.com/ansible-collections/kubernetes.core"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/vexxhost/ansible-collection-containers",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "d22923ebd40c0fd5a345318c1db90d125fb5140f",
                                            "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": "bb3fd0fde58a5b158605523e708645eb2a763886",
                                            "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.common",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "efd1a4dce1580c5a6f6555cdb03a5593c74f240f",
                                            "name": "vexxhost/atmosphere.common",
                                            "required": false,
                                            "short_name": "atmosphere.common",
                                            "src_dir": "src/github.com/vexxhost/atmosphere.common"
                                        },
                                        {
                                            "canonical_hostname": "opendev.org",
                                            "canonical_name": "opendev.org/openstack/ansible-collections-openstack",
                                            "checkout": "master",
                                            "checkout_description": "project default branch",
                                            "commit": "ac8cce11c7535fcf01a8b76487db08b1958ea68b",
                                            "name": "openstack/ansible-collections-openstack",
                                            "required": true,
                                            "short_name": "ansible-collections-openstack",
                                            "src_dir": "src/opendev.org/openstack/ansible-collections-openstack"
                                        }
                                    ],
                                    "workspace_dir": "/home/zuul"
                                }
                            },
                            "log": [
                                "Sibling collection ansible.posix at /home/zuul/src/github.com/ansible-collections/ansible.posix",
                                "Sibling collection community.crypto at /home/zuul/src/github.com/ansible-collections/community.crypto",
                                "Sibling collection community.general at /home/zuul/src/github.com/ansible-collections/community.general",
                                "Sibling collection kubernetes.core at /home/zuul/src/github.com/ansible-collections/kubernetes.core",
                                "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 openstack.cloud at /home/zuul/src/opendev.org/openstack/ansible-collections-openstack",
                                "Resolved kubernetes.core to 6.6.0 for >=2.4.0",
                                "Resolved openstack.cloud to 2.6.0 for >=2.0.0",
                                "Resolved vexxhost.kubernetes to v3.4.0 for >=2.5.0",
                                "Resolved ansible.posix to 2.2.2 for >=1.6.0",
                                "Resolved community.crypto to 3.5.1 for >=2.2.3",
                                "Resolved community.general to 13.5.0 for >=4.5.0",
                                "Skipping community.library_inventory_filtering_v1: no checked-out sibling",
                                "Resolved kubernetes.core to 6.6.0 for >=2.4.0,>=2.3.2",
                                "Resolved vexxhost.containers to v1.6.8 for >=1.6.0",
                                "Checked out ansible.posix to 2.2.2",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/ansible.posix",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'ansible.posix:2.2.2' to '/home/zuul/.ansible/collections/ansible_collections/ansible/posix'",
                                "Created collection for ansible.posix:2.2.2 at /home/zuul/.ansible/collections/ansible_collections/ansible/posix",
                                "ansible.posix:2.2.2 was installed successfully",
                                "Using CPython 3.12.3 interpreter at: /usr/bin/python3",
                                "Creating virtual environment at: .venv",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "Downloading pydantic-core (2.0MiB)",
                                "Downloading kubernetes (1.9MiB)",
                                "Downloading pygments (1.2MiB)",
                                "Downloading cryptography (4.3MiB)",
                                "Downloading ansible-core (2.1MiB)",
                                " Downloading pydantic-core",
                                " Downloading cryptography",
                                " Downloading pygments",
                                " Downloading kubernetes",
                                " Downloading ansible-core",
                                "Installed 52 packages in 80ms",
                                "Checked out community.crypto to 3.5.1",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/community.crypto",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'community.crypto:3.5.1' to '/home/zuul/.ansible/collections/ansible_collections/community/crypto'",
                                "Created collection for community.crypto:3.5.1 at /home/zuul/.ansible/collections/ansible_collections/community/crypto",
                                "community.crypto:3.5.1 was installed successfully",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "Checked out community.general to 13.5.0",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/community.general",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'community.general:13.5.0' to '/home/zuul/.ansible/collections/ansible_collections/community/general'",
                                "Created collection for community.general:13.5.0 at /home/zuul/.ansible/collections/ansible_collections/community/general",
                                "community.general:13.5.0 was installed successfully",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "Checked out kubernetes.core to 6.6.0",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/kubernetes.core",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'kubernetes.core:6.6.0' to '/home/zuul/.ansible/collections/ansible_collections/kubernetes/core'",
                                "Created collection for kubernetes.core:6.6.0 at /home/zuul/.ansible/collections/ansible_collections/kubernetes/core",
                                "kubernetes.core:6.6.0 was installed successfully",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "Checked out openstack.cloud to 2.6.0",
                                "Running: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/opendev.org/openstack/ansible-collections-openstack",
                                "Starting galaxy collection install process",
                                "Process install dependency map",
                                "Starting collection install process",
                                "Installing 'openstack.cloud:2.6.0' to '/home/zuul/.ansible/collections/ansible_collections/openstack/cloud'",
                                "Created collection for openstack.cloud:2.6.0 at /home/zuul/.ansible/collections/ansible_collections/openstack/cloud",
                                "openstack.cloud:2.6.0 was installed successfully",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "Checked out vexxhost.containers to v1.6.8",
                                "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.8' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers'",
                                "Created collection for vexxhost.containers:1.6.8 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/containers",
                                "vexxhost.containers:1.6.8 was installed successfully",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "Checked out vexxhost.kubernetes to v3.4.0",
                                "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:3.4.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes'",
                                "Created collection for vexxhost.kubernetes:3.4.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes",
                                "vexxhost.kubernetes:3.4.0 was installed successfully",
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`."
                            ],
                            "msg": "Sibling collection ansible.posix at /home/zuul/src/github.com/ansible-collections/ansible.posix\nSibling collection community.crypto at /home/zuul/src/github.com/ansible-collections/community.crypto\nSibling collection community.general at /home/zuul/src/github.com/ansible-collections/community.general\nSibling collection kubernetes.core at /home/zuul/src/github.com/ansible-collections/kubernetes.core\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 openstack.cloud at /home/zuul/src/opendev.org/openstack/ansible-collections-openstack\nResolved kubernetes.core to 6.6.0 for >=2.4.0\nResolved openstack.cloud to 2.6.0 for >=2.0.0\nResolved vexxhost.kubernetes to v3.4.0 for >=2.5.0\nResolved ansible.posix to 2.2.2 for >=1.6.0\nResolved community.crypto to 3.5.1 for >=2.2.3\nResolved community.general to 13.5.0 for >=4.5.0\nSkipping community.library_inventory_filtering_v1: no checked-out sibling\nResolved kubernetes.core to 6.6.0 for >=2.4.0,>=2.3.2\nResolved vexxhost.containers to v1.6.8 for >=1.6.0\nChecked out ansible.posix to 2.2.2\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/ansible.posix\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'ansible.posix:2.2.2' to '/home/zuul/.ansible/collections/ansible_collections/ansible/posix'\nCreated collection for ansible.posix:2.2.2 at /home/zuul/.ansible/collections/ansible_collections/ansible/posix\nansible.posix:2.2.2 was installed successfully\nUsing CPython 3.12.3 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nDownloading pydantic-core (2.0MiB)\nDownloading kubernetes (1.9MiB)\nDownloading pygments (1.2MiB)\nDownloading cryptography (4.3MiB)\nDownloading ansible-core (2.1MiB)\n Downloading pydantic-core\n Downloading cryptography\n Downloading pygments\n Downloading kubernetes\n Downloading ansible-core\nInstalled 52 packages in 80ms\nChecked out community.crypto to 3.5.1\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/community.crypto\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'community.crypto:3.5.1' to '/home/zuul/.ansible/collections/ansible_collections/community/crypto'\nCreated collection for community.crypto:3.5.1 at /home/zuul/.ansible/collections/ansible_collections/community/crypto\ncommunity.crypto:3.5.1 was installed successfully\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nChecked out community.general to 13.5.0\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/community.general\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'community.general:13.5.0' to '/home/zuul/.ansible/collections/ansible_collections/community/general'\nCreated collection for community.general:13.5.0 at /home/zuul/.ansible/collections/ansible_collections/community/general\ncommunity.general:13.5.0 was installed successfully\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nChecked out kubernetes.core to 6.6.0\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/github.com/ansible-collections/kubernetes.core\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'kubernetes.core:6.6.0' to '/home/zuul/.ansible/collections/ansible_collections/kubernetes/core'\nCreated collection for kubernetes.core:6.6.0 at /home/zuul/.ansible/collections/ansible_collections/kubernetes/core\nkubernetes.core:6.6.0 was installed successfully\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nChecked out openstack.cloud to 2.6.0\nRunning: uv run ansible-galaxy collection install --force --no-deps --collections-path /home/zuul/.ansible/collections /home/zuul/src/opendev.org/openstack/ansible-collections-openstack\nStarting galaxy collection install process\nProcess install dependency map\nStarting collection install process\nInstalling 'openstack.cloud:2.6.0' to '/home/zuul/.ansible/collections/ansible_collections/openstack/cloud'\nCreated collection for openstack.cloud:2.6.0 at /home/zuul/.ansible/collections/ansible_collections/openstack/cloud\nopenstack.cloud:2.6.0 was installed successfully\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nChecked out vexxhost.containers to v1.6.8\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.8' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers'\nCreated collection for vexxhost.containers:1.6.8 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/containers\nvexxhost.containers:1.6.8 was installed successfully\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nChecked out vexxhost.kubernetes to v3.4.0\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:3.4.0' to '/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes'\nCreated collection for vexxhost.kubernetes:3.4.0 at /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes\nvexxhost.kubernetes:3.4.0 was installed successfully\nwarning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`."
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:55:55.953802Z",
                            "start": "2026-10-26T23:55:48.353971Z"
                        },
                        "id": "0242ac17-0010-0e8b-7fb6-00000000000a",
                        "name": "Install Ansible collection siblings"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "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.common/test-playbooks/molecule/pre.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-26T23:56:03.634610Z",
                    "start": "2026-10-26T23:55:56.670780Z"
                },
                "id": "0242ac17-0010-a62f-62c7-000000000002",
                "name": "Prepare Molecule log collection"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1793058960,
                            "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 3 not upgraded.\nNeed to get 380 kB of archives.\nAfter this operation, 1127 kB of additional disk space will be used.\nGet:1 http://yul2.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libonig5 amd64 6.9.9-1build1 [172 kB]\nGet:2 http://yul2.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libjq1 amd64 1.7.1-3ubuntu0.24.04.2 [142 kB]\nGet:3 http://yul2.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 jq amd64 1.7.1-3ubuntu0.24.04.2 [65.7 kB]\nFetched 380 kB in 0s (2982 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 ... 31212 files and directories currently installed.)\r\nPreparing to unpack .../libonig5_6.9.9-1build1_amd64.deb ...\r\nUnpacking libonig5:amd64 (6.9.9-1build1) ...\r\nSelecting previously unselected package libjq1:amd64.\r\nPreparing to unpack .../libjq1_1.7.1-3ubuntu0.24.04.2_amd64.deb ...\r\nUnpacking libjq1:amd64 (1.7.1-3ubuntu0.24.04.2) ...\r\nSelecting previously unselected package jq.\r\nPreparing to unpack .../jq_1.7.1-3ubuntu0.24.04.2_amd64.deb ...\r\nUnpacking jq (1.7.1-3ubuntu0.24.04.2) ...\r\nSetting up libonig5:amd64 (6.9.9-1build1) ...\r\nSetting up libjq1:amd64 (1.7.1-3ubuntu0.24.04.2) ...\r\nSetting up jq (1.7.1-3ubuntu0.24.04.2) ...\r\nProcessing triggers for libc-bin (2.39-0ubuntu8.9) ...\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 3 not upgraded.",
                                "Need to get 380 kB of archives.",
                                "After this operation, 1127 kB of additional disk space will be used.",
                                "Get:1 http://yul2.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libonig5 amd64 6.9.9-1build1 [172 kB]",
                                "Get:2 http://yul2.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libjq1 amd64 1.7.1-3ubuntu0.24.04.2 [142 kB]",
                                "Get:3 http://yul2.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 jq amd64 1.7.1-3ubuntu0.24.04.2 [65.7 kB]",
                                "Fetched 380 kB in 0s (2982 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 ... 31212 files and directories currently installed.)",
                                "Preparing to unpack .../libonig5_6.9.9-1build1_amd64.deb ...",
                                "Unpacking libonig5:amd64 (6.9.9-1build1) ...",
                                "Selecting previously unselected package libjq1:amd64.",
                                "Preparing to unpack .../libjq1_1.7.1-3ubuntu0.24.04.2_amd64.deb ...",
                                "Unpacking libjq1:amd64 (1.7.1-3ubuntu0.24.04.2) ...",
                                "Selecting previously unselected package jq.",
                                "Preparing to unpack .../jq_1.7.1-3ubuntu0.24.04.2_amd64.deb ...",
                                "Unpacking jq (1.7.1-3ubuntu0.24.04.2) ...",
                                "Setting up libonig5:amd64 (6.9.9-1build1) ...",
                                "Setting up libjq1:amd64 (1.7.1-3ubuntu0.24.04.2) ...",
                                "Setting up jq (1.7.1-3ubuntu0.24.04.2) ...",
                                "Processing triggers for libc-bin (2.39-0ubuntu8.9) ..."
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:56:03.634610Z",
                            "start": "2026-10-26T23:55:56.681300Z"
                        },
                        "id": "0242ac17-0010-a62f-62c7-000000000004",
                        "name": "Install jq for log collection"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "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-10-26T23:59:06.731605Z",
                    "start": "2026-10-26T23:56:04.337611Z"
                },
                "id": "0242ac17-0010-6801-46b6-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.stat",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": true,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "src/github.com/vexxhost/atmosphere.common"
                                        }
                                    },
                                    "item": "src/github.com/vexxhost/atmosphere.common",
                                    "stat": {
                                        "atime": 1793058942.961336,
                                        "attr_flags": "e",
                                        "attributes": [
                                            "extents"
                                        ],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "unknown",
                                        "ctime": 1793058950.1287682,
                                        "dev": 64769,
                                        "device_type": 0,
                                        "executable": true,
                                        "exists": true,
                                        "gid": 1000,
                                        "gr_name": "zuul",
                                        "inode": 1039913,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": true,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": false,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "unknown",
                                        "mode": "0755",
                                        "mtime": 1793058950.1287682,
                                        "nlink": 11,
                                        "path": "src/github.com/vexxhost/atmosphere.common",
                                        "pw_name": "zuul",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 4096,
                                        "uid": 1000,
                                        "version": "3744837612",
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": true,
                                        "xoth": true,
                                        "xusr": true
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": true,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "src/github.com/vexxhost/atmosphere.common/molecule/secretgen-controller/inventory"
                                        }
                                    },
                                    "item": "src/github.com/vexxhost/atmosphere.common/molecule/secretgen-controller/inventory",
                                    "stat": {
                                        "exists": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": true,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/inventory"
                                        }
                                    },
                                    "item": "src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/inventory",
                                    "stat": {
                                        "exists": false
                                    }
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:56:05.165063Z",
                            "start": "2026-10-26T23:56:04.347828Z"
                        },
                        "id": "0242ac17-0010-6801-46b6-000000000004",
                        "name": "Check inventory directories"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.copy",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "checksum": "37c2a9f7827a05fce2fb21bd60e87c2129c93c73",
                                    "dest": "src/github.com/vexxhost/atmosphere.common/inventory.yaml",
                                    "diff": [],
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_original_basename": "inventory.yaml",
                                            "attributes": null,
                                            "backup": false,
                                            "checksum": "37c2a9f7827a05fce2fb21bd60e87c2129c93c73",
                                            "content": null,
                                            "dest": "src/github.com/vexxhost/atmosphere.common",
                                            "directory_mode": null,
                                            "follow": false,
                                            "force": true,
                                            "group": null,
                                            "local_follow": null,
                                            "mode": "0644",
                                            "owner": null,
                                            "remote_src": null,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1793058965.2603483-9-206686689843188/source",
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/atmosphere.common"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/atmosphere.common",
                                        "stat": {
                                            "atime": 1793058942.961336,
                                            "attr_flags": "e",
                                            "attributes": [
                                                "extents"
                                            ],
                                            "block_size": 4096,
                                            "blocks": 8,
                                            "charset": "unknown",
                                            "ctime": 1793058950.1287682,
                                            "dev": 64769,
                                            "device_type": 0,
                                            "executable": true,
                                            "exists": true,
                                            "gid": 1000,
                                            "gr_name": "zuul",
                                            "inode": 1039913,
                                            "isblk": false,
                                            "ischr": false,
                                            "isdir": true,
                                            "isfifo": false,
                                            "isgid": false,
                                            "islnk": false,
                                            "isreg": false,
                                            "issock": false,
                                            "isuid": false,
                                            "mimetype": "unknown",
                                            "mode": "0755",
                                            "mtime": 1793058950.1287682,
                                            "nlink": 11,
                                            "path": "src/github.com/vexxhost/atmosphere.common",
                                            "pw_name": "zuul",
                                            "readable": true,
                                            "rgrp": true,
                                            "roth": true,
                                            "rusr": true,
                                            "size": 4096,
                                            "uid": 1000,
                                            "version": "3744837612",
                                            "wgrp": false,
                                            "woth": false,
                                            "writeable": true,
                                            "wusr": true,
                                            "xgrp": true,
                                            "xoth": true,
                                            "xusr": true
                                        }
                                    },
                                    "md5sum": "83f631905dae73fe080ec212b797cfaf",
                                    "mode": "0644",
                                    "owner": "zuul",
                                    "size": 356113,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1793058965.2603483-9-206686689843188/source",
                                    "state": "file",
                                    "uid": 1000
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/atmosphere.common/molecule/secretgen-controller/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/atmosphere.common/molecule/secretgen-controller/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:56:06.154026Z",
                            "start": "2026-10-26T23:56:05.175781Z"
                        },
                        "id": "0242ac17-0010-6801-46b6-000000000005",
                        "name": "Copy inventory file for Zuul"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.replace",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "src/github.com/vexxhost/atmosphere.common/inventory.yaml",
                                            "regexp": "(^\\s*ansible_host:\\s*).*$",
                                            "replace": "\\1\"{{ nodepool.private_ipv4 }}\"",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/atmosphere.common"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/atmosphere.common",
                                        "stat": {
                                            "atime": 1793058942.961336,
                                            "attr_flags": "e",
                                            "attributes": [
                                                "extents"
                                            ],
                                            "block_size": 4096,
                                            "blocks": 8,
                                            "charset": "unknown",
                                            "ctime": 1793058950.1287682,
                                            "dev": 64769,
                                            "device_type": 0,
                                            "executable": true,
                                            "exists": true,
                                            "gid": 1000,
                                            "gr_name": "zuul",
                                            "inode": 1039913,
                                            "isblk": false,
                                            "ischr": false,
                                            "isdir": true,
                                            "isfifo": false,
                                            "isgid": false,
                                            "islnk": false,
                                            "isreg": false,
                                            "issock": false,
                                            "isuid": false,
                                            "mimetype": "unknown",
                                            "mode": "0755",
                                            "mtime": 1793058950.1287682,
                                            "nlink": 11,
                                            "path": "src/github.com/vexxhost/atmosphere.common",
                                            "pw_name": "zuul",
                                            "readable": true,
                                            "rgrp": true,
                                            "roth": true,
                                            "rusr": true,
                                            "size": 4096,
                                            "uid": 1000,
                                            "version": "3744837612",
                                            "wgrp": false,
                                            "woth": false,
                                            "writeable": true,
                                            "wusr": true,
                                            "xgrp": true,
                                            "xoth": true,
                                            "xusr": true
                                        }
                                    },
                                    "msg": "1 replacements made",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/atmosphere.common/molecule/secretgen-controller/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/atmosphere.common/molecule/secretgen-controller/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "false_condition": "item.stat.isdir | default(false)",
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "checksum_algorithm": "sha1",
                                                "follow": true,
                                                "get_attributes": true,
                                                "get_checksum": true,
                                                "get_mime": true,
                                                "path": "src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/inventory"
                                            }
                                        },
                                        "item": "src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/inventory",
                                        "stat": {
                                            "exists": false
                                        }
                                    },
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:56:06.563871Z",
                            "start": "2026-10-26T23:56:06.164077Z"
                        },
                        "id": "0242ac17-0010-6801-46b6-000000000006",
                        "name": "Switch \"ansible_host\" to private IP"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "molecule",
                                "test",
                                "--destroy",
                                "never",
                                "-s",
                                "secretgen-controller"
                            ],
                            "delta": "0:02:59.383215",
                            "end": "2026-10-26 23:59:06.358445",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run molecule test --destroy never -s secretgen-controller",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/atmosphere.common",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0010-6801-46b6-000000000007-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:56:06.975230",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.\nINFO     Collection 'atmosphere.common' detected.\nINFO     Scenarios will be used from 'extensions/molecule'\nINFO     [secretgen-controller > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy\nINFO     [secretgen-controller > prerun] Performing prerun with role_name_check=0...\nINFO     [secretgen-controller > dependency] Executing\nWARNING  [secretgen-controller > dependency] Missing roles requirements file: requirements.yml\nWARNING  [secretgen-controller > dependency] Missing collections requirements file: collections.yml\nWARNING  [secretgen-controller > dependency] Executed: 2 missing (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > cleanup] Executing\nWARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > destroy] Executing\nWARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.\nINFO     [secretgen-controller > destroy] Executed: Successful\nINFO     [secretgen-controller > syntax] Executing\n\nplaybook: /home/zuul/src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/converge.yml\nINFO     [secretgen-controller > syntax] Executed: Successful\nINFO     [secretgen-controller > create] Executing\nWARNING  [secretgen-controller > create] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > prepare] Executing\n\nPLAY [Prepare] *****************************************************************\n\nTASK [Gathering Facts] *********************************************************\nMonday 26 October 2026  23:56:13 +0000 (0:00:00.030)       0:00:00.030 ********\n[WARNING]: Platform linux on host controller is using the discovered Python\ninterpreter at /usr/bin/python3.12, but future installation of another Python\ninterpreter could change the meaning of that path. See\nhttps://docs.ansible.com/ansible-\ncore/2.18/reference_appendices/interpreter_discovery.html for more information.\nok: [controller]\n\nTASK [Install Debian packages] *************************************************\nMonday 26 October 2026  23:56:15 +0000 (0:00:01.315)       0:00:01.345 ********\nok: [controller]\n\nPLAY [Configure Kubernetes VIP] ************************************************\n\nTASK [Gathering Facts] *********************************************************\nMonday 26 October 2026  23:56:17 +0000 (0:00:02.302)       0:00:03.648 ********\nok: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***\nMonday 26 October 2026  23:56:19 +0000 (0:00:01.814)       0:00:05.462 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************\nMonday 26 October 2026  23:56:19 +0000 (0:00:00.369)       0:00:05.832 ********\nok: [controller] => (item=/etc/keepalived/keepalived.conf)\nok: [controller] => (item=/etc/keepalived/check_apiserver.sh)\nok: [controller] => (item=/etc/kubernetes/manifests/keepalived.yaml)\nok: [controller] => (item=/etc/haproxy/haproxy.cfg)\nok: [controller] => (item=/etc/kubernetes/manifests/haproxy.yaml)\n\nTASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****\nMonday 26 October 2026  23:56:20 +0000 (0:00:01.140)       0:00:06.972 ********\nfailed: [controller] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}\nfailed: [controller] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}\nfailed: [controller] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}\n...ignoring\n\nTASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********\nMonday 26 October 2026  23:56:21 +0000 (0:00:00.794)       0:00:07.766 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********\nMonday 26 October 2026  23:56:22 +0000 (0:00:00.353)       0:00:08.120 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************\nMonday 26 October 2026  23:56:22 +0000 (0:00:00.255)       0:00:08.375 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***\nMonday 26 October 2026  23:56:22 +0000 (0:00:00.036)       0:00:08.412 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************\nMonday 26 October 2026  23:56:22 +0000 (0:00:00.048)       0:00:08.460 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******\nMonday 26 October 2026  23:56:23 +0000 (0:00:00.865)       0:00:09.325 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************\nMonday 26 October 2026  23:56:23 +0000 (0:00:00.252)       0:00:09.577 ********\n\nPLAY [Install Kubernetes] ******************************************************\n\nTASK [Gathering Facts] *********************************************************\nMonday 26 October 2026  23:56:23 +0000 (0:00:00.068)       0:00:09.646 ********\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:56:25 +0000 (0:00:01.848)       0:00:11.494 ********\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nMonday 26 October 2026  23:56:25 +0000 (0:00:00.280)       0:00:11.774 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nMonday 26 October 2026  23:56:25 +0000 (0:00:00.052)       0:00:11.827 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:56:26 +0000 (0:00:00.280)       0:00:12.107 ********\nok: [controller] => {\n    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:56:26 +0000 (0:00:00.083)       0:00:12.190 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:56:27 +0000 (0:00:01.108)       0:00:13.299 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:56:27 +0000 (0:00:00.054)       0:00:13.353 ********\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nMonday 26 October 2026  23:56:27 +0000 (0:00:00.272)       0:00:13.625 ********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:56:28 +0000 (0:00:00.945)       0:00:14.571 ********\nok: [controller] => {\n    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:56:28 +0000 (0:00:00.144)       0:00:14.716 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:56:29 +0000 (0:00:00.989)       0:00:15.705 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nMonday 26 October 2026  23:56:32 +0000 (0:00:03.002)       0:00:18.708 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nMonday 26 October 2026  23:56:32 +0000 (0:00:00.026)       0:00:18.734 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nMonday 26 October 2026  23:56:32 +0000 (0:00:00.046)       0:00:18.781 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nMonday 26 October 2026  23:56:32 +0000 (0:00:00.036)       0:00:18.817 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nMonday 26 October 2026  23:56:42 +0000 (0:00:09.562)       0:00:28.380 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nMonday 26 October 2026  23:56:42 +0000 (0:00:00.625)       0:00:29.006 ********\nchanged: [controller] => (item={'path': '/etc/containerd'})\nchanged: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nchanged: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})\nchanged: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nchanged: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nMonday 26 October 2026  23:56:44 +0000 (0:00:01.202)       0:00:30.208 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nMonday 26 October 2026  23:56:44 +0000 (0:00:00.730)       0:00:30.938 ********\n\nRUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********\nMonday 26 October 2026  23:56:44 +0000 (0:00:00.005)       0:00:30.944 ********\nchanged: [controller]\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nMonday 26 October 2026  23:56:45 +0000 (0:00:00.805)       0:00:31.749 ********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nMonday 26 October 2026  23:56:46 +0000 (0:00:00.850)       0:00:32.600 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***\nMonday 26 October 2026  23:56:47 +0000 (0:00:00.731)       0:00:33.331 ********\nfatal: [controller]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000196491's Python /usr/bin/python3.12. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\"}\n...ignoring\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***\nMonday 26 October 2026  23:56:47 +0000 (0:00:00.609)       0:00:33.941 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***\nMonday 26 October 2026  23:56:47 +0000 (0:00:00.048)       0:00:33.989 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***\nMonday 26 October 2026  23:56:47 +0000 (0:00:00.045)       0:00:34.034 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***\nMonday 26 October 2026  23:56:48 +0000 (0:00:00.048)       0:00:34.082 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***\nMonday 26 October 2026  23:56:48 +0000 (0:00:00.044)       0:00:34.126 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:56:48 +0000 (0:00:00.054)       0:00:34.181 ********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:56:48 +0000 (0:00:00.281)       0:00:34.463 ********\nok: [controller] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:56:48 +0000 (0:00:00.044)       0:00:34.507 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:56:49 +0000 (0:00:01.429)       0:00:35.936 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:56:49 +0000 (0:00:00.052)       0:00:35.989 ********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:56:50 +0000 (0:00:00.272)       0:00:36.262 ********\nok: [controller] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubectl\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:56:50 +0000 (0:00:00.057)       0:00:36.320 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:56:51 +0000 (0:00:00.978)       0:00:37.299 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install SELinux packages] ***************\nMonday 26 October 2026  23:56:51 +0000 (0:00:00.050)       0:00:37.350 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***\nMonday 26 October 2026  23:56:51 +0000 (0:00:00.036)       0:00:37.386 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********\nMonday 26 October 2026  23:56:51 +0000 (0:00:00.038)       0:00:37.425 ********\nskipping: [controller]\n\nTASK [vexxhost.containers.containerd : Install AppArmor packages] **************\nMonday 26 October 2026  23:56:51 +0000 (0:00:00.038)       0:00:37.464 ********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***\nMonday 26 October 2026  23:56:52 +0000 (0:00:01.037)       0:00:38.501 ********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Create folders for configuration] *******\nMonday 26 October 2026  23:56:53 +0000 (0:00:00.558)       0:00:39.059 ********\nok: [controller] => (item={'path': '/etc/containerd'})\nok: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})\nok: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})\nok: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})\nok: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})\n\nTASK [vexxhost.containers.containerd : Create containerd config file] **********\nMonday 26 October 2026  23:56:54 +0000 (0:00:01.204)       0:00:40.264 ********\nok: [controller]\n\nTASK [vexxhost.containers.containerd : Force any restarts if necessary] ********\nMonday 26 October 2026  23:56:54 +0000 (0:00:00.676)       0:00:40.941 ********\n\nTASK [vexxhost.containers.containerd : Enable and start service] ***************\nMonday 26 October 2026  23:56:54 +0000 (0:00:00.007)       0:00:40.949 ********\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:56:56 +0000 (0:00:01.483)       0:00:42.432 ********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:56:56 +0000 (0:00:00.279)       0:00:42.711 ********\nok: [controller] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:56:56 +0000 (0:00:00.087)       0:00:42.799 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:56:57 +0000 (0:00:00.819)       0:00:43.618 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:56:59 +0000 (0:00:01.631)       0:00:45.249 ********\nok: [controller] => {\n    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:56:59 +0000 (0:00:00.082)       0:00:45.332 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:56:59 +0000 (0:00:00.671)       0:00:46.004 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.cri_tools : Create crictl config] ********************\nMonday 26 October 2026  23:57:01 +0000 (0:00:01.623)       0:00:47.627 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********\nMonday 26 October 2026  23:57:02 +0000 (0:00:00.616)       0:00:48.243 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:57:02 +0000 (0:00:00.277)       0:00:48.521 ********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:57:02 +0000 (0:00:00.273)       0:00:48.795 ********\nok: [controller] => {\n    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:57:02 +0000 (0:00:00.083)       0:00:48.878 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:57:03 +0000 (0:00:01.122)       0:00:50.001 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***\nMonday 26 October 2026  23:57:06 +0000 (0:00:02.897)       0:00:52.899 ********\nok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)\n\nTASK [vexxhost.containers.cni_plugins : Install additional packages] ***********\nMonday 26 October 2026  23:57:06 +0000 (0:00:00.068)       0:00:52.967 ********\nok: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************\nMonday 26 October 2026  23:57:07 +0000 (0:00:00.941)       0:00:53.908 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********\nMonday 26 October 2026  23:57:08 +0000 (0:00:00.381)       0:00:54.290 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******\nMonday 26 October 2026  23:57:08 +0000 (0:00:00.613)       0:00:54.903 ********\nchanged: [controller] => (item=br_netfilter)\nok: [controller] => (item=ip_tables)\nchanged: [controller] => (item=ip6_tables)\nchanged: [controller] => (item=nf_conntrack)\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:57:09 +0000 (0:00:01.109)       0:00:56.013 ********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:57:10 +0000 (0:00:00.265)       0:00:56.279 ********\nok: [controller] => {\n    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubelet\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:57:10 +0000 (0:00:00.057)       0:00:56.337 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:57:11 +0000 (0:00:01.570)       0:00:57.907 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***\nMonday 26 October 2026  23:57:11 +0000 (0:00:00.048)       0:00:57.956 ********\nok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)\n\nTASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************\nMonday 26 October 2026  23:57:11 +0000 (0:00:00.073)       0:00:58.030 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************\nMonday 26 October 2026  23:57:12 +0000 (0:00:00.035)       0:00:58.065 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************\nMonday 26 October 2026  23:57:15 +0000 (0:00:03.660)       0:01:01.726 ********\nchanged: [controller] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})\nchanged: [controller] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})\nchanged: [controller] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})\nchanged: [controller] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})\nchanged: [controller] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})\nchanged: [controller] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})\nchanged: [controller] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})\n\nTASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***\nMonday 26 October 2026  23:57:17 +0000 (0:00:01.639)       0:01:03.366 ********\nchanged: [controller] => (item=/etc/systemd/system/kubelet.service.d)\nok: [controller] => (item=/etc/kubernetes)\nok: [controller] => (item=/etc/kubernetes/manifests)\n\nTASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********\nMonday 26 October 2026  23:57:18 +0000 (0:00:00.723)       0:01:04.089 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***\nMonday 26 October 2026  23:57:18 +0000 (0:00:00.593)       0:01:04.683 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Check swap status] *************************\nMonday 26 October 2026  23:57:19 +0000 (0:00:00.604)       0:01:05.287 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************\nMonday 26 October 2026  23:57:19 +0000 (0:00:00.343)       0:01:05.630 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********\nMonday 26 October 2026  23:57:19 +0000 (0:00:00.044)       0:01:05.675 ********\nok: [controller] => (item=swap)\nok: [controller] => (item=none)\n\nTASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***\nMonday 26 October 2026  23:57:20 +0000 (0:00:00.595)       0:01:06.270 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************\nMonday 26 October 2026  23:57:20 +0000 (0:00:00.597)       0:01:06.868 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********\nMonday 26 October 2026  23:57:22 +0000 (0:00:01.749)       0:01:08.617 ********\n\nRUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************\nMonday 26 October 2026  23:57:22 +0000 (0:00:00.011)       0:01:08.629 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********\nMonday 26 October 2026  23:57:23 +0000 (0:00:00.878)       0:01:09.507 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****\nMonday 26 October 2026  23:57:24 +0000 (0:00:00.699)       0:01:10.207 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************\nMonday 26 October 2026  23:57:25 +0000 (0:00:00.954)       0:01:11.161 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********\nMonday 26 October 2026  23:57:26 +0000 (0:00:01.476)       0:01:12.637 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********\nMonday 26 October 2026  23:57:26 +0000 (0:00:00.378)       0:01:13.015 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************\nMonday 26 October 2026  23:57:27 +0000 (0:00:00.502)       0:01:13.517 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller\n\nTASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************\nMonday 26 October 2026  23:57:27 +0000 (0:00:00.060)       0:01:13.577 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller\n\nTASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***\nMonday 26 October 2026  23:57:27 +0000 (0:00:00.052)       0:01:13.630 ********\nok: [controller] => (item=controller)\n\nTASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****\nMonday 26 October 2026  23:57:27 +0000 (0:00:00.267)       0:01:13.898 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***\nMonday 26 October 2026  23:57:27 +0000 (0:00:00.057)       0:01:13.955 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********\nMonday 26 October 2026  23:57:27 +0000 (0:00:00.061)       0:01:14.016 ********\nok: [controller] => {\n    \"msg\": \"controller\"\n}\n\nTASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.047)       0:01:14.064 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.643)       0:01:14.707 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.032)       0:01:14.740 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.034)       0:01:14.774 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.033)       0:01:14.807 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.040)       0:01:14.848 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.038)       0:01:14.887 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.043)       0:01:14.930 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************\nMonday 26 October 2026  23:57:28 +0000 (0:00:00.041)       0:01:14.972 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***\nMonday 26 October 2026  23:57:57 +0000 (0:00:28.155)       0:01:43.128 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************\nMonday 26 October 2026  23:57:57 +0000 (0:00:00.281)       0:01:43.409 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***\nMonday 26 October 2026  23:57:57 +0000 (0:00:00.049)       0:01:43.458 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***\nMonday 26 October 2026  23:57:57 +0000 (0:00:00.276)       0:01:43.735 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******\nMonday 26 October 2026  23:57:57 +0000 (0:00:00.282)       0:01:44.018 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************\nMonday 26 October 2026  23:57:58 +0000 (0:00:00.272)       0:01:44.290 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***\nMonday 26 October 2026  23:57:58 +0000 (0:00:00.044)       0:01:44.334 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************\nMonday 26 October 2026  23:57:58 +0000 (0:00:00.044)       0:01:44.379 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***\nMonday 26 October 2026  23:57:58 +0000 (0:00:00.044)       0:01:44.424 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***\nMonday 26 October 2026  23:58:05 +0000 (0:00:07.451)       0:01:51.875 ********\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not\nwork.\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************\nMonday 26 October 2026  23:58:06 +0000 (0:00:00.728)       0:01:52.604 ********\nskipping: [controller] => (item=DaemonSet)\nskipping: [controller] => (item=ConfigMap)\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************\nMonday 26 October 2026  23:58:06 +0000 (0:00:00.060)       0:01:52.664 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***\nMonday 26 October 2026  23:58:06 +0000 (0:00:00.042)       0:01:52.707 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***\nMonday 26 October 2026  23:58:06 +0000 (0:00:00.042)       0:01:52.750 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************\nMonday 26 October 2026  23:58:06 +0000 (0:00:00.040)       0:01:52.790 ********\nskipping: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***\nMonday 26 October 2026  23:58:06 +0000 (0:00:00.041)       0:01:52.831 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***\nMonday 26 October 2026  23:58:07 +0000 (0:00:00.508)       0:01:53.339 ********\nchanged: [controller]\n\nPLAY [Install control-plane components] ****************************************\n\nTASK [Gathering Facts] *********************************************************\nMonday 26 October 2026  23:58:08 +0000 (0:00:00.990)       0:01:54.330 ********\nok: [controller]\n\nTASK [vexxhost.containers.forget_package : Forget package] *********************\nMonday 26 October 2026  23:58:10 +0000 (0:00:01.852)       0:01:56.182 ********\nok: [controller]\n\nTASK [vexxhost.containers.package : Update state for tar] **********************\nMonday 26 October 2026  23:58:10 +0000 (0:00:00.270)       0:01:56.453 ********\nok: [controller]\n\nTASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***\nMonday 26 October 2026  23:58:11 +0000 (0:00:00.954)       0:01:57.407 ********\nok: [controller]\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:58:11 +0000 (0:00:00.282)       0:01:57.689 ********\nok: [controller] => {\n    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:58:11 +0000 (0:00:00.053)       0:01:57.743 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:58:12 +0000 (0:00:01.039)       0:01:58.782 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************\nMonday 26 October 2026  23:58:14 +0000 (0:00:01.793)       0:02:00.576 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************\nMonday 26 October 2026  23:58:14 +0000 (0:00:00.415)       0:02:00.991 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************\nMonday 26 October 2026  23:58:15 +0000 (0:00:00.254)       0:02:01.245 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***\nMonday 26 October 2026  23:58:15 +0000 (0:00:00.351)       0:02:01.597 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***\nMonday 26 October 2026  23:58:15 +0000 (0:00:00.275)       0:02:01.872 ********\nok: [controller]\n\nTASK [Install plugin] **********************************************************\nMonday 26 October 2026  23:58:16 +0000 (0:00:00.277)       0:02:02.150 ********\nincluded: vexxhost.containers.download_artifact for controller\n\nTASK [vexxhost.containers.download_artifact : Starting download of file] *******\nMonday 26 October 2026  23:58:16 +0000 (0:00:00.061)       0:02:02.211 ********\nok: [controller] => {\n    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"\n}\n\nTASK [vexxhost.containers.download_artifact : Download item] *******************\nMonday 26 October 2026  23:58:16 +0000 (0:00:00.051)       0:02:02.263 ********\nchanged: [controller]\n\nTASK [vexxhost.containers.download_artifact : Extract archive] *****************\nMonday 26 October 2026  23:58:17 +0000 (0:00:00.907)       0:02:03.171 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nMonday 26 October 2026  23:58:19 +0000 (0:00:02.042)       0:02:05.213 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nMonday 26 October 2026  23:58:19 +0000 (0:00:00.049)       0:02:05.263 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************\nMonday 26 October 2026  23:58:19 +0000 (0:00:00.687)       0:02:05.950 ********\nok: [controller]\n\nTASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************\nMonday 26 October 2026  23:58:20 +0000 (0:00:00.873)       0:02:06.824 ********\n[DEPRECATION WARNING]: The 'status.values' return value is deprecated and will\nbe removed in version 8.0.0. Use 'status.release_values' instead. This feature\nwill be removed from kubernetes.core in version 8.0.0. Deprecation warnings can\n be disabled by setting deprecation_warnings=False in ansible.cfg.\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***\nMonday 26 October 2026  23:58:23 +0000 (0:00:02.570)       0:02:09.394 ********\nincluded: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller\n\nTASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************\nMonday 26 October 2026  23:58:23 +0000 (0:00:00.039)       0:02:09.434 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************\nMonday 26 October 2026  23:58:23 +0000 (0:00:00.589)       0:02:10.023 ********\nchanged: [controller]\n\nTASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************\nMonday 26 October 2026  23:58:55 +0000 (0:00:31.319)       0:02:41.343 ********\nchanged: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=117  changed=54   unreachable=0    failed=0    skipped=35   rescued=0    ignored=2\n\n\nTASKS RECAP ********************************************************************\nMonday 26 October 2026  23:58:56 +0000 (0:00:00.752)       0:02:42.095 ********\n===============================================================================\nvexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 31.32s\nvexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 28.16s\nvexxhost.containers.containerd : Install AppArmor packages -------------- 9.56s\nvexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems --- 7.45s\nvexxhost.kubernetes.kubelet : Install additional packages --------------- 3.66s\nvexxhost.containers.download_artifact : Extract archive ----------------- 3.00s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.90s\nvexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.57s\nInstall Debian packages ------------------------------------------------- 2.30s\nvexxhost.containers.download_artifact : Extract archive ----------------- 2.04s\nGathering Facts --------------------------------------------------------- 1.85s\nGathering Facts --------------------------------------------------------- 1.85s\nGathering Facts --------------------------------------------------------- 1.81s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.79s\nvexxhost.kubernetes.kubelet : Enable noswap service --------------------- 1.75s\nvexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 1.73s\nvexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 1.64s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.63s\nvexxhost.containers.download_artifact : Extract archive ----------------- 1.62s\nvexxhost.containers.download_artifact : Download item ------------------- 1.57s\nINFO     [secretgen-controller > prepare] Executed: Successful\nINFO     [secretgen-controller > converge] Executing\n\nPLAY [Deploy \"secretgen-controller\"] *******************************************\n\nTASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****\nMonday 26 October 2026  23:58:56 +0000 (0:00:00.034)       0:00:00.034 ********\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not\nwork.\n[WARNING]: Platform linux on host controller is using the discovered Python\ninterpreter at /usr/bin/python3.12, but future installation of another Python\ninterpreter could change the meaning of that path. See\nhttps://docs.ansible.com/ansible-\ncore/2.18/reference_appendices/interpreter_discovery.html for more information.\nchanged: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nMonday 26 October 2026  23:58:58 +0000 (0:00:01.488)       0:00:01.523 ********\n===============================================================================\natmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.49s\nINFO     [secretgen-controller > converge] Executed: Successful\nINFO     [secretgen-controller > idempotence] Executing\n\nPLAY [Deploy \"secretgen-controller\"] *******************************************\n\nTASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****\nMonday 26 October 2026  23:58:59 +0000 (0:00:00.033)       0:00:00.033 ********\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not\nwork.\n[WARNING]: Platform linux on host controller is using the discovered Python\ninterpreter at /usr/bin/python3.12, but future installation of another Python\ninterpreter could change the meaning of that path. See\nhttps://docs.ansible.com/ansible-\ncore/2.18/reference_appendices/interpreter_discovery.html for more information.\nok: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nMonday 26 October 2026  23:59:00 +0000 (0:00:01.329)       0:00:01.362 ********\n===============================================================================\natmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.33s\nINFO     [secretgen-controller > idempotence] Executed: Successful\nINFO     [secretgen-controller > side_effect] Executing\nWARNING  [secretgen-controller > side_effect] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > verify] Executing\n\nPLAY [Verify] ******************************************************************\n\nTASK [Gathering Facts] *********************************************************\nMonday 26 October 2026  23:59:01 +0000 (0:00:00.028)       0:00:00.028 ********\n[WARNING]: Platform linux on host controller is using the discovered Python\ninterpreter at /usr/bin/python3.12, but future installation of another Python\ninterpreter could change the meaning of that path. See\nhttps://docs.ansible.com/ansible-\ncore/2.18/reference_appendices/interpreter_discovery.html for more information.\nok: [controller]\n\nTASK [Wait for secretgen-controller deployment to be available] ****************\nMonday 26 October 2026  23:59:03 +0000 (0:00:02.362)       0:00:02.391 ********\n[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not\nwork.\nok: [controller]\n\nTASK [Create a test Password resource] *****************************************\nMonday 26 October 2026  23:59:04 +0000 (0:00:00.879)       0:00:03.270 ********\nchanged: [controller]\n\nTASK [Wait for test-password secret to be generated] ***************************\nMonday 26 October 2026  23:59:05 +0000 (0:00:00.902)       0:00:04.172 ********\nok: [controller]\n\nPLAY RECAP *********************************************************************\ncontroller                 : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n\n\nTASKS RECAP ********************************************************************\nMonday 26 October 2026  23:59:06 +0000 (0:00:00.736)       0:00:04.908 ********\n===============================================================================\nGathering Facts --------------------------------------------------------- 2.36s\nCreate a test Password resource ----------------------------------------- 0.90s\nWait for secretgen-controller deployment to be available ---------------- 0.88s\nWait for test-password secret to be generated --------------------------- 0.74s\nINFO     [secretgen-controller > verify] Executed: Successful\nINFO     [secretgen-controller > cleanup] Executing\nWARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)\nINFO     [secretgen-controller > destroy] Executing\nWARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.\nINFO     [secretgen-controller > destroy] Executed: Successful\nWARNING  Molecule executed 1 scenario (1 missing files)",
                            "stdout_lines": [
                                "warning: No `requires-python` value found in the workspace. Defaulting to `>=3.12`.",
                                "INFO     Collection 'atmosphere.common' detected.",
                                "INFO     Scenarios will be used from 'extensions/molecule'",
                                "INFO     [secretgen-controller > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy",
                                "INFO     [secretgen-controller > prerun] Performing prerun with role_name_check=0...",
                                "INFO     [secretgen-controller > dependency] Executing",
                                "WARNING  [secretgen-controller > dependency] Missing roles requirements file: requirements.yml",
                                "WARNING  [secretgen-controller > dependency] Missing collections requirements file: collections.yml",
                                "WARNING  [secretgen-controller > dependency] Executed: 2 missing (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > cleanup] Executing",
                                "WARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > destroy] Executing",
                                "WARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [secretgen-controller > destroy] Executed: Successful",
                                "INFO     [secretgen-controller > syntax] Executing",
                                "",
                                "playbook: /home/zuul/src/github.com/vexxhost/atmosphere.common/extensions/molecule/secretgen-controller/converge.yml",
                                "INFO     [secretgen-controller > syntax] Executed: Successful",
                                "INFO     [secretgen-controller > create] Executing",
                                "WARNING  [secretgen-controller > create] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > prepare] Executing",
                                "",
                                "PLAY [Prepare] *****************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Monday 26 October 2026  23:56:13 +0000 (0:00:00.030)       0:00:00.030 ********",
                                "[WARNING]: Platform linux on host controller is using the discovered Python",
                                "interpreter at /usr/bin/python3.12, but future installation of another Python",
                                "interpreter could change the meaning of that path. See",
                                "https://docs.ansible.com/ansible-",
                                "core/2.18/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller]",
                                "",
                                "TASK [Install Debian packages] *************************************************",
                                "Monday 26 October 2026  23:56:15 +0000 (0:00:01.315)       0:00:01.345 ********",
                                "ok: [controller]",
                                "",
                                "PLAY [Configure Kubernetes VIP] ************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Monday 26 October 2026  23:56:17 +0000 (0:00:02.302)       0:00:03.648 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/etc/kubernetes/manifests)] ***",
                                "Monday 26 October 2026  23:56:19 +0000 (0:00:01.814)       0:00:05.462 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Uninstall legacy HA stack] ****************",
                                "Monday 26 October 2026  23:56:19 +0000 (0:00:00.369)       0:00:05.832 ********",
                                "ok: [controller] => (item=/etc/keepalived/keepalived.conf)",
                                "ok: [controller] => (item=/etc/keepalived/check_apiserver.sh)",
                                "ok: [controller] => (item=/etc/kubernetes/manifests/keepalived.yaml)",
                                "ok: [controller] => (item=/etc/haproxy/haproxy.cfg)",
                                "ok: [controller] => (item=/etc/kubernetes/manifests/haproxy.yaml)",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Switch API server to run on port 6443] ****",
                                "Monday 26 October 2026  23:56:20 +0000 (0:00:01.140)       0:00:06.972 ********",
                                "failed: [controller] (item=/etc/kubernetes/manifests/kube-apiserver.yaml) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/manifests/kube-apiserver.yaml\", \"msg\": \"Path /etc/kubernetes/manifests/kube-apiserver.yaml does not exist !\", \"rc\": 257}",
                                "failed: [controller] (item=/etc/kubernetes/controller-manager.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/controller-manager.conf\", \"msg\": \"Path /etc/kubernetes/controller-manager.conf does not exist !\", \"rc\": 257}",
                                "failed: [controller] (item=/etc/kubernetes/scheduler.conf) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"item\": \"/etc/kubernetes/scheduler.conf\", \"msg\": \"Path /etc/kubernetes/scheduler.conf does not exist !\", \"rc\": 257}",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if super-admin.conf exists] *********",
                                "Monday 26 October 2026  23:56:21 +0000 (0:00:00.794)       0:00:07.766 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Check if kubeadm has already run] *********",
                                "Monday 26 October 2026  23:56:22 +0000 (0:00:00.353)       0:00:08.120 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path] ************",
                                "Monday 26 October 2026  23:56:22 +0000 (0:00:00.255)       0:00:08.375 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Set fact with KUBECONFIG path (with super-admin.conf)] ***",
                                "Monday 26 October 2026  23:56:22 +0000 (0:00:00.036)       0:00:08.412 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Upload Kubernetes manifest] ***************",
                                "Monday 26 October 2026  23:56:22 +0000 (0:00:00.048)       0:00:08.460 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Ensure kube-vip configuration file] *******",
                                "Monday 26 October 2026  23:56:23 +0000 (0:00:00.865)       0:00:09.325 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kube_vip : Flush handlers] ***************************",
                                "Monday 26 October 2026  23:56:23 +0000 (0:00:00.252)       0:00:09.577 ********",
                                "",
                                "PLAY [Install Kubernetes] ******************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Monday 26 October 2026  23:56:23 +0000 (0:00:00.068)       0:00:09.646 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:56:25 +0000 (0:00:01.848)       0:00:11.494 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Monday 26 October 2026  23:56:25 +0000 (0:00:00.280)       0:00:11.774 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Monday 26 October 2026  23:56:25 +0000 (0:00:00.052)       0:00:11.827 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:56:26 +0000 (0:00:00.280)       0:00:12.107 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/opencontainers/runc/releases/download/v1.4.2/runc.amd64\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:56:26 +0000 (0:00:00.083)       0:00:12.190 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:56:27 +0000 (0:00:01.108)       0:00:13.299 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:56:27 +0000 (0:00:00.054)       0:00:13.353 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Monday 26 October 2026  23:56:27 +0000 (0:00:00.272)       0:00:13.625 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:56:28 +0000 (0:00:00.945)       0:00:14.571 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/containerd/containerd/releases/download/v2.3.2/containerd-2.3.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:56:28 +0000 (0:00:00.144)       0:00:14.716 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:56:29 +0000 (0:00:00.989)       0:00:15.705 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Monday 26 October 2026  23:56:32 +0000 (0:00:03.002)       0:00:18.708 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Monday 26 October 2026  23:56:32 +0000 (0:00:00.026)       0:00:18.734 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Monday 26 October 2026  23:56:32 +0000 (0:00:00.046)       0:00:18.781 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Monday 26 October 2026  23:56:32 +0000 (0:00:00.036)       0:00:18.817 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Monday 26 October 2026  23:56:42 +0000 (0:00:09.562)       0:00:28.380 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Monday 26 October 2026  23:56:42 +0000 (0:00:00.625)       0:00:29.006 ********",
                                "changed: [controller] => (item={'path': '/etc/containerd'})",
                                "changed: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "changed: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "changed: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "changed: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Monday 26 October 2026  23:56:44 +0000 (0:00:01.202)       0:00:30.208 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Monday 26 October 2026  23:56:44 +0000 (0:00:00.730)       0:00:30.938 ********",
                                "",
                                "RUNNING HANDLER [vexxhost.containers.containerd : Restart containerd] **********",
                                "Monday 26 October 2026  23:56:44 +0000 (0:00:00.005)       0:00:30.944 ********",
                                "changed: [controller]",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Monday 26 October 2026  23:56:45 +0000 (0:00:00.805)       0:00:31.749 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Monday 26 October 2026  23:56:46 +0000 (0:00:00.850)       0:00:32.600 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the \"kubeadm-config\" ConfigMap] ***",
                                "Monday 26 October 2026  23:56:47 +0000 (0:00:00.731)       0:00:33.331 ********",
                                "fatal: [controller]: FAILED! => {\"changed\": false, \"msg\": \"Failed to import the required Python library (kubernetes) on np0000196491's Python /usr/bin/python3.12. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter\"}",
                                "...ignoring",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Parse the ClusterConfiguration] ***",
                                "Monday 26 October 2026  23:56:47 +0000 (0:00:00.609)       0:00:33.941 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Retrieve the current Kubernetes version] ***",
                                "Monday 26 October 2026  23:56:47 +0000 (0:00:00.048)       0:00:33.989 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Extract major, minor, and patch versions] ***",
                                "Monday 26 October 2026  23:56:47 +0000 (0:00:00.045)       0:00:34.034 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Fail if we're jumping more than one minor version] ***",
                                "Monday 26 October 2026  23:56:48 +0000 (0:00:00.048)       0:00:34.082 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes_upgrade_check : Set fact if we need to upgrade] ***",
                                "Monday 26 October 2026  23:56:48 +0000 (0:00:00.044)       0:00:34.126 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:56:48 +0000 (0:00:00.054)       0:00:34.181 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:56:48 +0000 (0:00:00.281)       0:00:34.463 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubeadm\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:56:48 +0000 (0:00:00.044)       0:00:34.507 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:56:49 +0000 (0:00:01.429)       0:00:35.936 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:56:49 +0000 (0:00:00.052)       0:00:35.989 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:56:50 +0000 (0:00:00.272)       0:00:36.262 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubectl\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:56:50 +0000 (0:00:00.057)       0:00:36.320 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:56:51 +0000 (0:00:00.978)       0:00:37.299 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install SELinux packages] ***************",
                                "Monday 26 October 2026  23:56:51 +0000 (0:00:00.050)       0:00:37.350 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Set SELinux to permissive at runtime] ***",
                                "Monday 26 October 2026  23:56:51 +0000 (0:00:00.036)       0:00:37.386 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Persist SELinux permissive mode] ********",
                                "Monday 26 October 2026  23:56:51 +0000 (0:00:00.038)       0:00:37.425 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Install AppArmor packages] **************",
                                "Monday 26 October 2026  23:56:51 +0000 (0:00:00.038)       0:00:37.464 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create systemd service file for containerd] ***",
                                "Monday 26 October 2026  23:56:52 +0000 (0:00:01.037)       0:00:38.501 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Create folders for configuration] *******",
                                "Monday 26 October 2026  23:56:53 +0000 (0:00:00.558)       0:00:39.059 ********",
                                "ok: [controller] => (item={'path': '/etc/containerd'})",
                                "ok: [controller] => (item={'path': '/var/lib/containerd', 'mode': '0o700'})",
                                "ok: [controller] => (item={'path': '/run/containerd', 'mode': '0o711'})",
                                "ok: [controller] => (item={'path': '/run/containerd/io.containerd.grpc.v1.cri', 'mode': '0o700'})",
                                "ok: [controller] => (item={'path': '/run/containerd/io.containerd.sandbox.controller.v1.shim', 'mode': '0o700'})",
                                "",
                                "TASK [vexxhost.containers.containerd : Create containerd config file] **********",
                                "Monday 26 October 2026  23:56:54 +0000 (0:00:01.204)       0:00:40.264 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.containerd : Force any restarts if necessary] ********",
                                "Monday 26 October 2026  23:56:54 +0000 (0:00:00.676)       0:00:40.941 ********",
                                "",
                                "TASK [vexxhost.containers.containerd : Enable and start service] ***************",
                                "Monday 26 October 2026  23:56:54 +0000 (0:00:00.007)       0:00:40.949 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:56:56 +0000 (0:00:01.483)       0:00:42.432 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:56:56 +0000 (0:00:00.279)       0:00:42.711 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/crictl-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:56:56 +0000 (0:00:00.087)       0:00:42.799 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:56:57 +0000 (0:00:00.819)       0:00:43.618 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:56:59 +0000 (0:00:01.631)       0:00:45.249 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.36.0/critest-v1.36.0-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:56:59 +0000 (0:00:00.082)       0:00:45.332 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:56:59 +0000 (0:00:00.671)       0:00:46.004 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cri_tools : Create crictl config] ********************",
                                "Monday 26 October 2026  23:57:01 +0000 (0:00:01.623)       0:00:47.627 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/opt/cni/bin)] *********",
                                "Monday 26 October 2026  23:57:02 +0000 (0:00:00.616)       0:00:48.243 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:57:02 +0000 (0:00:00.277)       0:00:48.521 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:57:02 +0000 (0:00:00.273)       0:00:48.795 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/containernetworking/plugins/releases/download/v1.9.1/cni-plugins-linux-amd64-v1.9.1.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:57:02 +0000 (0:00:00.083)       0:00:48.878 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:57:03 +0000 (0:00:01.122)       0:00:50.001 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Gather variables for each operating system] ***",
                                "Monday 26 October 2026  23:57:06 +0000 (0:00:02.897)       0:00:52.899 ********",
                                "ok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/containers/roles/cni_plugins/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Install additional packages] ***********",
                                "Monday 26 October 2026  23:57:06 +0000 (0:00:00.068)       0:00:52.967 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Ensure IPv6 is enabled] ****************",
                                "Monday 26 October 2026  23:57:07 +0000 (0:00:00.941)       0:00:53.908 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules on-boot] *********",
                                "Monday 26 October 2026  23:57:08 +0000 (0:00:00.381)       0:00:54.290 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.cni_plugins : Enable kernel modules in runtime] ******",
                                "Monday 26 October 2026  23:57:08 +0000 (0:00:00.613)       0:00:54.903 ********",
                                "changed: [controller] => (item=br_netfilter)",
                                "ok: [controller] => (item=ip_tables)",
                                "changed: [controller] => (item=ip6_tables)",
                                "changed: [controller] => (item=nf_conntrack)",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:57:09 +0000 (0:00:01.109)       0:00:56.013 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:57:10 +0000 (0:00:00.265)       0:00:56.279 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://dl.k8s.io/release/v1.28.13/bin/linux/amd64/kubelet\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:57:10 +0000 (0:00:00.057)       0:00:56.337 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:57:11 +0000 (0:00:01.570)       0:00:57.907 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Gather variables for each operating system] ***",
                                "Monday 26 October 2026  23:57:11 +0000 (0:00:00.048)       0:00:57.956 ********",
                                "ok: [controller] => (item=/home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubelet/vars/debian.yml)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install coreutils] *************************",
                                "Monday 26 October 2026  23:57:11 +0000 (0:00:00.073)       0:00:58.030 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Install additional packages] ***************",
                                "Monday 26 October 2026  23:57:12 +0000 (0:00:00.035)       0:00:58.065 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure sysctl values] *******************",
                                "Monday 26 October 2026  23:57:15 +0000 (0:00:03.660)       0:01:01.726 ********",
                                "changed: [controller] => (item={'name': 'net.ipv4.ip_forward', 'value': 1})",
                                "changed: [controller] => (item={'name': 'net.bridge.bridge-nf-call-iptables', 'value': 1})",
                                "changed: [controller] => (item={'name': 'net.bridge.bridge-nf-call-ip6tables', 'value': 1})",
                                "changed: [controller] => (item={'name': 'net.ipv4.conf.all.rp_filter', 'value': 0})",
                                "changed: [controller] => (item={'name': 'fs.inotify.max_queued_events', 'value': 1048576})",
                                "changed: [controller] => (item={'name': 'fs.inotify.max_user_instances', 'value': 8192})",
                                "changed: [controller] => (item={'name': 'fs.inotify.max_user_watches', 'value': 1048576})",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create folders for kubernetes configuration] ***",
                                "Monday 26 October 2026  23:57:17 +0000 (0:00:01.639)       0:01:03.366 ********",
                                "changed: [controller] => (item=/etc/systemd/system/kubelet.service.d)",
                                "ok: [controller] => (item=/etc/kubernetes)",
                                "ok: [controller] => (item=/etc/kubernetes/manifests)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubelet systemd service config] ********",
                                "Monday 26 October 2026  23:57:18 +0000 (0:00:00.723)       0:01:04.089 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Add kubeadm dropin for kubelet systemd service config] ***",
                                "Monday 26 October 2026  23:57:18 +0000 (0:00:00.593)       0:01:04.683 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Check swap status] *************************",
                                "Monday 26 October 2026  23:57:19 +0000 (0:00:00.604)       0:01:05.287 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Disable swap] ******************************",
                                "Monday 26 October 2026  23:57:19 +0000 (0:00:00.343)       0:01:05.630 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Remove swapfile from /etc/fstab] ***********",
                                "Monday 26 October 2026  23:57:19 +0000 (0:00:00.044)       0:01:05.675 ********",
                                "ok: [controller] => (item=swap)",
                                "ok: [controller] => (item=none)",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Create noswap systemd service config file] ***",
                                "Monday 26 October 2026  23:57:20 +0000 (0:00:00.595)       0:01:06.270 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable noswap service] *********************",
                                "Monday 26 October 2026  23:57:20 +0000 (0:00:00.597)       0:01:06.868 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Force any restarts if necessary] ***********",
                                "Monday 26 October 2026  23:57:22 +0000 (0:00:01.749)       0:01:08.617 ********",
                                "",
                                "RUNNING HANDLER [vexxhost.kubernetes.kubelet : Reload systemd] *****************",
                                "Monday 26 October 2026  23:57:22 +0000 (0:00:00.011)       0:01:08.629 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Enable and start kubelet service] **********",
                                "Monday 26 October 2026  23:57:23 +0000 (0:00:00.878)       0:01:09.507 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure availability of dbus on Debian] *****",
                                "Monday 26 October 2026  23:57:24 +0000 (0:00:00.699)       0:01:10.207 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Configure short hostname] ******************",
                                "Monday 26 October 2026  23:57:25 +0000 (0:00:00.954)       0:01:11.161 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubelet : Ensure hostname inside hosts file] *********",
                                "Monday 26 October 2026  23:57:26 +0000 (0:00:01.476)       0:01:12.637 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kubernetes repository] ***********",
                                "Monday 26 October 2026  23:57:26 +0000 (0:00:00.378)       0:01:13.015 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup control plane] ********************",
                                "Monday 26 October 2026  23:57:27 +0000 (0:00:00.502)       0:01:13.517 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/control-plane.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Bootstrap cluster] **********************",
                                "Monday 26 October 2026  23:57:27 +0000 (0:00:00.060)       0:01:13.577 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/kubernetes/tasks/bootstrap-cluster.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if any control plane is bootstrapped] ***",
                                "Monday 26 October 2026  23:57:27 +0000 (0:00:00.052)       0:01:13.630 ********",
                                "ok: [controller] => (item=controller)",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Pick node from pre-existing cluster] ****",
                                "Monday 26 October 2026  23:57:27 +0000 (0:00:00.267)       0:01:13.898 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Select first node to initialize cluster] ***",
                                "Monday 26 October 2026  23:57:27 +0000 (0:00:00.057)       0:01:13.955 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Print selected bootstrap node] **********",
                                "Monday 26 October 2026  23:57:27 +0000 (0:00:00.061)       0:01:14.016 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"controller\"",
                                "}",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upload cluster configuration for bootstrap node] ***",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.047)       0:01:14.064 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create pki folder] **********************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.643)       0:01:14.707 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca key] ***************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.032)       0:01:14.740 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create kubernetes ca cert] **************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.034)       0:01:14.774 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca key] *********************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.033)       0:01:14.807 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create etcd-ca cert] ********************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.040)       0:01:14.848 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca key] **************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.038)       0:01:14.887 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create front-proxy-ca cert] *************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.043)       0:01:14.930 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Initialize cluster] *********************",
                                "Monday 26 October 2026  23:57:28 +0000 (0:00:00.041)       0:01:14.972 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the node is already part of the cluster] ***",
                                "Monday 26 October 2026  23:57:57 +0000 (0:00:28.155)       0:01:43.128 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Join cluster] ***************************",
                                "Monday 26 October 2026  23:57:57 +0000 (0:00:00.281)       0:01:43.409 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Create folder for admin configuration] ***",
                                "Monday 26 October 2026  23:57:57 +0000 (0:00:00.049)       0:01:43.458 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Creating a symlink for admin configuration file] ***",
                                "Monday 26 October 2026  23:57:57 +0000 (0:00:00.276)       0:01:43.735 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Add bash autocomplete for kubectl] ******",
                                "Monday 26 October 2026  23:57:57 +0000 (0:00:00.282)       0:01:44.018 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install PIP] ****************************",
                                "Monday 26 October 2026  23:57:58 +0000 (0:00:00.272)       0:01:44.290 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using pip on supported systems] ***",
                                "Monday 26 October 2026  23:57:58 +0000 (0:00:00.044)       0:01:44.334 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Enable EPEL repository] *****************",
                                "Monday 26 October 2026  23:57:58 +0000 (0:00:00.044)       0:01:44.379 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems] ***",
                                "Monday 26 October 2026  23:57:58 +0000 (0:00:00.044)       0:01:44.424 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Allow workload on control plane node] ***",
                                "Monday 26 October 2026  23:58:05 +0000 (0:00:07.451)       0:01:51.875 ********",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not",
                                "work.",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Remove kube-proxy resources] ************",
                                "Monday 26 October 2026  23:58:06 +0000 (0:00:00.728)       0:01:52.604 ********",
                                "skipping: [controller] => (item=DaemonSet)",
                                "skipping: [controller] => (item=ConfigMap)",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Start an upgrade] ***********************",
                                "Monday 26 October 2026  23:58:06 +0000 (0:00:00.060)       0:01:52.664 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Check if the Kubernetes API services is up to date] ***",
                                "Monday 26 October 2026  23:58:06 +0000 (0:00:00.042)       0:01:52.707 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Trigger an upgrade of the Kubernetes API services] ***",
                                "Monday 26 October 2026  23:58:06 +0000 (0:00:00.042)       0:01:52.750 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Setup nodes] ****************************",
                                "Monday 26 October 2026  23:58:06 +0000 (0:00:00.040)       0:01:52.790 ********",
                                "skipping: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Upgrade & restart Kubelet node for upgrade (if needed)] ***",
                                "Monday 26 October 2026  23:58:06 +0000 (0:00:00.041)       0:01:52.831 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.kubernetes : Set node selector for CoreDNS components] ***",
                                "Monday 26 October 2026  23:58:07 +0000 (0:00:00.508)       0:01:53.339 ********",
                                "changed: [controller]",
                                "",
                                "PLAY [Install control-plane components] ****************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Monday 26 October 2026  23:58:08 +0000 (0:00:00.990)       0:01:54.330 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.forget_package : Forget package] *********************",
                                "Monday 26 October 2026  23:58:10 +0000 (0:00:01.852)       0:01:56.182 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.package : Update state for tar] **********************",
                                "Monday 26 October 2026  23:58:10 +0000 (0:00:00.270)       0:01:56.453 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] ***",
                                "Monday 26 October 2026  23:58:11 +0000 (0:00:00.954)       0:01:57.407 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:58:11 +0000 (0:00:00.282)       0:01:57.689 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:58:11 +0000 (0:00:00.053)       0:01:57.743 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:58:12 +0000 (0:00:01.039)       0:01:58.782 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm repository] ***********************",
                                "Monday 26 October 2026  23:58:14 +0000 (0:00:01.793)       0:02:00.576 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] ***************",
                                "Monday 26 October 2026  23:58:14 +0000 (0:00:00.415)       0:02:00.991 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] *************************",
                                "Monday 26 October 2026  23:58:15 +0000 (0:00:00.254)       0:02:01.245 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] ***",
                                "Monday 26 October 2026  23:58:15 +0000 (0:00:00.351)       0:02:01.597 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] ***",
                                "Monday 26 October 2026  23:58:15 +0000 (0:00:00.275)       0:02:01.872 ********",
                                "ok: [controller]",
                                "",
                                "TASK [Install plugin] **********************************************************",
                                "Monday 26 October 2026  23:58:16 +0000 (0:00:00.277)       0:02:02.150 ********",
                                "included: vexxhost.containers.download_artifact for controller",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Starting download of file] *******",
                                "Monday 26 October 2026  23:58:16 +0000 (0:00:00.061)       0:02:02.211 ********",
                                "ok: [controller] => {",
                                "    \"msg\": \"https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz\"",
                                "}",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Download item] *******************",
                                "Monday 26 October 2026  23:58:16 +0000 (0:00:00.051)       0:02:02.263 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.containers.download_artifact : Extract archive] *****************",
                                "Monday 26 October 2026  23:58:17 +0000 (0:00:00.907)       0:02:03.171 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Monday 26 October 2026  23:58:19 +0000 (0:00:02.042)       0:02:05.213 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Monday 26 October 2026  23:58:19 +0000 (0:00:00.049)       0:02:05.263 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Get current Kubernetes version] *************",
                                "Monday 26 October 2026  23:58:19 +0000 (0:00:00.687)       0:02:05.950 ********",
                                "ok: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.cilium : Deploy Helm chart] **************************",
                                "Monday 26 October 2026  23:58:20 +0000 (0:00:00.873)       0:02:06.824 ********",
                                "[DEPRECATION WARNING]: The 'status.values' return value is deprecated and will",
                                "be removed in version 8.0.0. Use 'status.release_values' instead. This feature",
                                "will be removed from kubernetes.core in version 8.0.0. Deprecation warnings can",
                                " be disabled by setting deprecation_warnings=False in ansible.cfg.",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Include help chart upload method tasks] ***",
                                "Monday 26 October 2026  23:58:23 +0000 (0:00:02.570)       0:02:09.394 ********",
                                "included: /home/zuul/.ansible/collections/ansible_collections/vexxhost/kubernetes/roles/upload_helm_chart/tasks/synchronize.yml for controller",
                                "",
                                "TASK [vexxhost.kubernetes.upload_helm_chart : Upload Helm chart] ***************",
                                "Monday 26 October 2026  23:58:23 +0000 (0:00:00.039)       0:02:09.434 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Deploy Helm chart] *******************",
                                "Monday 26 October 2026  23:58:23 +0000 (0:00:00.589)       0:02:10.023 ********",
                                "changed: [controller]",
                                "",
                                "TASK [vexxhost.kubernetes.envoy_gateway : Create GatewayClass] *****************",
                                "Monday 26 October 2026  23:58:55 +0000 (0:00:31.319)       0:02:41.343 ********",
                                "changed: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=117  changed=54   unreachable=0    failed=0    skipped=35   rescued=0    ignored=2",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Monday 26 October 2026  23:58:56 +0000 (0:00:00.752)       0:02:42.095 ********",
                                "===============================================================================",
                                "vexxhost.kubernetes.envoy_gateway : Deploy Helm chart ------------------ 31.32s",
                                "vexxhost.kubernetes.kubernetes : Initialize cluster -------------------- 28.16s",
                                "vexxhost.containers.containerd : Install AppArmor packages -------------- 9.56s",
                                "vexxhost.kubernetes.kubernetes : Install Kubernetes Python package using package manager on supported systems --- 7.45s",
                                "vexxhost.kubernetes.kubelet : Install additional packages --------------- 3.66s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 3.00s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.90s",
                                "vexxhost.kubernetes.cilium : Deploy Helm chart -------------------------- 2.57s",
                                "Install Debian packages ------------------------------------------------- 2.30s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 2.04s",
                                "Gathering Facts --------------------------------------------------------- 1.85s",
                                "Gathering Facts --------------------------------------------------------- 1.85s",
                                "Gathering Facts --------------------------------------------------------- 1.81s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.79s",
                                "vexxhost.kubernetes.kubelet : Enable noswap service --------------------- 1.75s",
                                "vexxhost.kubernetes.kubelet : Reload systemd ---------------------------- 1.73s",
                                "vexxhost.kubernetes.kubelet : Configure sysctl values ------------------- 1.64s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.63s",
                                "vexxhost.containers.download_artifact : Extract archive ----------------- 1.62s",
                                "vexxhost.containers.download_artifact : Download item ------------------- 1.57s",
                                "INFO     [secretgen-controller > prepare] Executed: Successful",
                                "INFO     [secretgen-controller > converge] Executing",
                                "",
                                "PLAY [Deploy \"secretgen-controller\"] *******************************************",
                                "",
                                "TASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****",
                                "Monday 26 October 2026  23:58:56 +0000 (0:00:00.034)       0:00:00.034 ********",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not",
                                "work.",
                                "[WARNING]: Platform linux on host controller is using the discovered Python",
                                "interpreter at /usr/bin/python3.12, but future installation of another Python",
                                "interpreter could change the meaning of that path. See",
                                "https://docs.ansible.com/ansible-",
                                "core/2.18/reference_appendices/interpreter_discovery.html for more information.",
                                "changed: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Monday 26 October 2026  23:58:58 +0000 (0:00:01.488)       0:00:01.523 ********",
                                "===============================================================================",
                                "atmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.49s",
                                "INFO     [secretgen-controller > converge] Executed: Successful",
                                "INFO     [secretgen-controller > idempotence] Executing",
                                "",
                                "PLAY [Deploy \"secretgen-controller\"] *******************************************",
                                "",
                                "TASK [atmosphere.common.secretgen_controller : Deploy secretgen-controller] ****",
                                "Monday 26 October 2026  23:58:59 +0000 (0:00:00.033)       0:00:00.033 ********",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not",
                                "work.",
                                "[WARNING]: Platform linux on host controller is using the discovered Python",
                                "interpreter at /usr/bin/python3.12, but future installation of another Python",
                                "interpreter could change the meaning of that path. See",
                                "https://docs.ansible.com/ansible-",
                                "core/2.18/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Monday 26 October 2026  23:59:00 +0000 (0:00:01.329)       0:00:01.362 ********",
                                "===============================================================================",
                                "atmosphere.common.secretgen_controller : Deploy secretgen-controller ---- 1.33s",
                                "INFO     [secretgen-controller > idempotence] Executed: Successful",
                                "INFO     [secretgen-controller > side_effect] Executing",
                                "WARNING  [secretgen-controller > side_effect] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > verify] Executing",
                                "",
                                "PLAY [Verify] ******************************************************************",
                                "",
                                "TASK [Gathering Facts] *********************************************************",
                                "Monday 26 October 2026  23:59:01 +0000 (0:00:00.028)       0:00:00.028 ********",
                                "[WARNING]: Platform linux on host controller is using the discovered Python",
                                "interpreter at /usr/bin/python3.12, but future installation of another Python",
                                "interpreter could change the meaning of that path. See",
                                "https://docs.ansible.com/ansible-",
                                "core/2.18/reference_appendices/interpreter_discovery.html for more information.",
                                "ok: [controller]",
                                "",
                                "TASK [Wait for secretgen-controller deployment to be available] ****************",
                                "Monday 26 October 2026  23:59:03 +0000 (0:00:02.362)       0:00:02.391 ********",
                                "[WARNING]: kubernetes<24.2.0 is not supported or tested. Some features may not",
                                "work.",
                                "ok: [controller]",
                                "",
                                "TASK [Create a test Password resource] *****************************************",
                                "Monday 26 October 2026  23:59:04 +0000 (0:00:00.879)       0:00:03.270 ********",
                                "changed: [controller]",
                                "",
                                "TASK [Wait for test-password secret to be generated] ***************************",
                                "Monday 26 October 2026  23:59:05 +0000 (0:00:00.902)       0:00:04.172 ********",
                                "ok: [controller]",
                                "",
                                "PLAY RECAP *********************************************************************",
                                "controller                 : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0",
                                "",
                                "",
                                "TASKS RECAP ********************************************************************",
                                "Monday 26 October 2026  23:59:06 +0000 (0:00:00.736)       0:00:04.908 ********",
                                "===============================================================================",
                                "Gathering Facts --------------------------------------------------------- 2.36s",
                                "Create a test Password resource ----------------------------------------- 0.90s",
                                "Wait for secretgen-controller deployment to be available ---------------- 0.88s",
                                "Wait for test-password secret to be generated --------------------------- 0.74s",
                                "INFO     [secretgen-controller > verify] Executed: Successful",
                                "INFO     [secretgen-controller > cleanup] Executing",
                                "WARNING  [secretgen-controller > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress)",
                                "INFO     [secretgen-controller > destroy] Executing",
                                "WARNING  [secretgen-controller > destroy] Skipping, '--destroy=never' requested.",
                                "INFO     [secretgen-controller > destroy] Executed: Successful",
                                "WARNING  Molecule executed 1 scenario (1 missing files)"
                            ],
                            "zuul_log_id": "0242ac17-0010-6801-46b6-000000000007-1-controller"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:06.731605Z",
                            "start": "2026-10-26T23:56:06.610179Z"
                        },
                        "id": "0242ac17-0010-6801-46b6-000000000007",
                        "name": "Run Molecule scenario"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "post",
    "playbook": "github.com/vexxhost/atmosphere.common/test-playbooks/molecule/post.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-26T23:59:55.945488Z",
                    "start": "2026-10-26T23:59:07.380024Z"
                },
                "id": "0242ac17-0010-6443-29e5-000000000002",
                "name": "Collect Molecule logs"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:07.843136Z",
                            "start": "2026-10-26T23:59:07.392531Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000000c",
                        "name": "creating directory for system status"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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\nip neigh > /tmp/logs/system/ip-neigh.txt\nbridge fdb show > /tmp/logs/system/bridge-fdb.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.130940",
                            "end": "2026-10-26 23:59:08.421223",
                            "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\nip neigh > /tmp/logs/system/ip-neigh.txt\nbridge fdb show > /tmp/logs/system/bridge-fdb.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-6443-29e5-00000000000d-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:08.290283",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "+ systemd-cgls --full --all --no-pager\n+ ip addr\n+ ip route\n+ lsblk\n+ mount\n+ docker images\n/bin/bash: line 7: docker: command not found\n+ brctl show\n/bin/bash: line 8: brctl: command not found\n+ ip neigh\n+ bridge fdb show\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/bin/bash: line 13: docker: command not found\n+ '[' '!' -z '' ']'",
                            "stdout_lines": [
                                "+ systemd-cgls --full --all --no-pager",
                                "+ ip addr",
                                "+ ip route",
                                "+ lsblk",
                                "+ mount",
                                "+ docker images",
                                "/bin/bash: line 7: docker: command not found",
                                "+ brctl show",
                                "/bin/bash: line 8: brctl: command not found",
                                "+ ip neigh",
                                "+ bridge fdb show",
                                "+ ps aux --sort=-%mem",
                                "+ dpkg -l",
                                "+ CONTAINERS=($(docker ps -a --format '{{ .Names }}' --filter label=zuul))",
                                "++ docker ps -a --format '{{ .Names }}' --filter label=zuul",
                                "/bin/bash: line 13: docker: command not found",
                                "+ '[' '!' -z '' ']'"
                            ],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-00000000000d-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:08.901713Z",
                            "start": "2026-10-26T23:59:07.885093Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000000d",
                        "name": "Get logs for each host"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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@162.253.55.113:/tmp/logs/system /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                            "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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                                    "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@162.253.55.113:/tmp/logs/system",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "created directory /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller\ncd+++++++++ system/\n>f+++++++++ system/brctl-show.txt\n>f+++++++++ system/bridge-fdb.txt\n>f+++++++++ system/docker-images.txt\n>f+++++++++ system/ip-addr.txt\n>f+++++++++ system/ip-neigh.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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                                "cd+++++++++ system/",
                                ">f+++++++++ system/brctl-show.txt",
                                ">f+++++++++ system/bridge-fdb.txt",
                                ">f+++++++++ system/docker-images.txt",
                                ">f+++++++++ system/ip-addr.txt",
                                ">f+++++++++ system/ip-neigh.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-6443-29e5-00000000000a",
                        "name": "gather-host-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-host-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:09.637478Z",
                            "start": "2026-10-26T23:59:08.912593Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000000e",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:10.152911Z",
                            "start": "2026-10-26T23:59:09.655468Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000012",
                        "name": "creating directory for helm release status"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\n\n# get all Helm releases including pending and failed releases:\n# Helm 3 needs --all for that, Helm 4 lists them by default and\n# has no such flag\nHELM_LIST_ARGS=\"--short\"\nif helm list --help | grep -q -- '-a, --all '; then\n      HELM_LIST_ARGS=\"${HELM_LIST_ARGS} --all\"\nfi\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      for release in $(helm list ${HELM_LIST_ARGS} --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:01.697748",
                            "end": "2026-10-26 23:59:12.162825",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\n\n# get all Helm releases including pending and failed releases:\n# Helm 3 needs --all for that, Helm 4 lists them by default and\n# has no such flag\nHELM_LIST_ARGS=\"--short\"\nif helm list --help | grep -q -- '-a, --all '; then\n      HELM_LIST_ARGS=\"${HELM_LIST_ARGS} --all\"\nfi\n\nfor namespace in $(kubectl get namespaces --no-headers --output custom-columns=\":metadata.name\"); do\n      for release in $(helm list ${HELM_LIST_ARGS} --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-6443-29e5-000000000014-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:10.465077",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-000000000014-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:12.211747Z",
                            "start": "2026-10-26T23:59:10.199022Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000014",
                        "name": "Gather get release status for helm charts"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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@162.253.55.113:/tmp/logs/helm /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                            "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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                                    "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@162.253.55.113:/tmp/logs/helm",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ helm/\ncd+++++++++ helm/releases/\ncd+++++++++ helm/releases/envoy-gateway-system/\n>f+++++++++ helm/releases/envoy-gateway-system/envoy-gateway.txt\ncd+++++++++ helm/releases/kube-system/\n>f+++++++++ helm/releases/kube-system/cilium.txt\ncd+++++++++ helm/values/\ncd+++++++++ helm/values/envoy-gateway-system/\n>f+++++++++ helm/values/envoy-gateway-system/envoy-gateway.yaml\ncd+++++++++ helm/values/kube-system/\n>f+++++++++ helm/values/kube-system/cilium.yaml\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ helm/",
                                "cd+++++++++ helm/releases/",
                                "cd+++++++++ helm/releases/envoy-gateway-system/",
                                ">f+++++++++ helm/releases/envoy-gateway-system/envoy-gateway.txt",
                                "cd+++++++++ helm/releases/kube-system/",
                                ">f+++++++++ helm/releases/kube-system/cilium.txt",
                                "cd+++++++++ helm/values/",
                                "cd+++++++++ helm/values/envoy-gateway-system/",
                                ">f+++++++++ helm/values/envoy-gateway-system/envoy-gateway.yaml",
                                "cd+++++++++ helm/values/kube-system/",
                                ">f+++++++++ helm/values/kube-system/cilium.yaml"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000010",
                        "name": "helm-release-status",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/helm-release-status"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:12.776533Z",
                            "start": "2026-10-26T23:59:12.216565Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000015",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:13.057782Z",
                            "start": "2026-10-26T23:59:12.789188Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000019",
                        "name": "creating directory for cluster scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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:13.224431",
                            "end": "2026-10-26 23:59:26.636961",
                            "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-6443-29e5-00000000001a-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:13.412530",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nnode/controller\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nclusterrole/admin\nclusterrole/cilium\nclusterrole/cilium-operator\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nclusterrole/cluster-admin\nclusterrole/edit\nclusterrole/envoy-gateway-gateway-helm-certgen:envoy-gateway-system\nclusterrole/envoy-gateway-gateway-helm-envoy-gateway-role\nclusterrole/kubeadm:get-nodes\nclusterrole/secretgen-controller-cluster-role\nclusterrole/system:aggregate-to-admin\nclusterrole/system:aggregate-to-edit\nclusterrole/system:aggregate-to-view\nclusterrole/system:auth-delegator\nclusterrolebinding/cilium\nclusterrole/system:basic-user\nclusterrolebinding/cilium-operator\nclusterrolebinding/cluster-admin\nclusterrole/system:certificates.k8s.io:certificatesigningrequests:nodeclient\nclusterrolebinding/envoy-gateway-gateway-helm-certgen:envoy-gateway-system\nclusterrole/system:certificates.k8s.io:certificatesigningrequests:selfnodeclient\nclusterrolebinding/envoy-gateway-gateway-helm-envoy-gateway-rolebinding\nclusterrolebinding/kubeadm:get-nodes\nclusterrolebinding/kubeadm:kubelet-bootstrap\nclusterrole/system:certificates.k8s.io:kube-apiserver-client-approver\nclusterrolebinding/kubeadm:node-autoapprove-bootstrap\nclusterrole/system:certificates.k8s.io:kube-apiserver-client-kubelet-approver\nclusterrolebinding/kubeadm:node-autoapprove-certificate-rotation\nclusterrole/system:certificates.k8s.io:kubelet-serving-approver\nclusterrolebinding/kubeadm:node-proxier\nclusterrole/system:certificates.k8s.io:legacy-unknown-approver\nclusterrolebinding/secretgen-controller-cluster-role-binding\nclusterrole/system:controller:attachdetach-controller\nclusterrolebinding/system:basic-user\nclusterrole/system:controller:certificate-controller\nclusterrolebinding/system:controller:attachdetach-controller\nclusterrole/system:controller:clusterrole-aggregation-controller\nclusterrole/system:controller:cronjob-controller\nclusterrolebinding/system:controller:certificate-controller\nclusterrole/system:controller:daemon-set-controller\nclusterrolebinding/system:controller:clusterrole-aggregation-controller\nclusterrole/system:controller:deployment-controller\nclusterrolebinding/system:controller:cronjob-controller\nclusterrole/system:controller:disruption-controller\nclusterrolebinding/system:controller:daemon-set-controller\nclusterrole/system:controller:endpoint-controller\nclusterrolebinding/system:controller:deployment-controller\nclusterrole/system:controller:endpointslice-controller\nclusterrolebinding/system:controller:disruption-controller\nclusterrole/system:controller:endpointslicemirroring-controller\nclusterrolebinding/system:controller:endpoint-controller\nclusterrole/system:controller:ephemeral-volume-controller\nclusterrolebinding/system:controller:endpointslice-controller\nclusterrole/system:controller:expand-controller\nclusterrolebinding/system:controller:endpointslicemirroring-controller\nclusterrolebinding/system:controller:ephemeral-volume-controller\nclusterrole/system:controller:generic-garbage-collector\nclusterrole/system:controller:horizontal-pod-autoscaler\nclusterrolebinding/system:controller:expand-controller\nclusterrolebinding/system:controller:generic-garbage-collector\nclusterrole/system:controller:job-controller\nclusterrole/system:controller:namespace-controller\nclusterrolebinding/system:controller:horizontal-pod-autoscaler\nclusterrole/system:controller:node-controller\nclusterrole/system:controller:persistent-volume-binder\nclusterrolebinding/system:controller:job-controller\nclusterrole/system:controller:pod-garbage-collector\nclusterrole/system:controller:pv-protection-controller\nclusterrolebinding/system:controller:namespace-controller\nclusterrole/system:controller:pvc-protection-controller\nclusterrole/system:controller:replicaset-controller\nclusterrole/system:controller:replication-controller\nclusterrolebinding/system:controller:node-controller\nclusterrole/system:controller:resourcequota-controller\nclusterrolebinding/system:controller:persistent-volume-binder\nclusterrole/system:controller:root-ca-cert-publisher\nclusterrole/system:controller:route-controller\nclusterrole/system:controller:service-account-controller\nclusterrolebinding/system:controller:pod-garbage-collector\nclusterrole/system:controller:service-controller\nclusterrole/system:controller:statefulset-controller\nclusterrolebinding/system:controller:pv-protection-controller\nclusterrole/system:controller:ttl-after-finished-controller\nclusterrolebinding/system:controller:pvc-protection-controller\nclusterrole/system:controller:ttl-controller\nclusterrolebinding/system:controller:replicaset-controller\nclusterrole/system:coredns\nclusterrolebinding/system:controller:replication-controller\nclusterrole/system:discovery\nclusterrolebinding/system:controller:resourcequota-controller\nclusterrolebinding/system:controller:root-ca-cert-publisher\nclusterrole/system:heapster\nclusterrolebinding/system:controller:route-controller\nclusterrole/system:kube-aggregator\nclusterrole/system:kube-controller-manager\nclusterrolebinding/system:controller:service-account-controller\nclusterrole/system:kube-dns\nclusterrolebinding/system:controller:service-controller\nclusterrole/system:kube-scheduler\nclusterrolebinding/system:controller:statefulset-controller\nclusterrole/system:kubelet-api-admin\nclusterrolebinding/system:controller:ttl-after-finished-controller\nclusterrole/system:monitoring\nclusterrolebinding/system:controller:ttl-controller\nclusterrolebinding/system:coredns\nclusterrole/system:node\nclusterrolebinding/system:discovery\nclusterrole/system:node-bootstrapper\nclusterrolebinding/system:kube-controller-manager\nclusterrole/system:node-problem-detector\nclusterrolebinding/system:kube-dns\nclusterrole/system:node-proxier\nclusterrole/system:persistent-volume-provisioner\nclusterrolebinding/system:kube-scheduler\nclusterrole/system:public-info-viewer\nclusterrolebinding/system:monitoring\nclusterrole/system:service-account-issuer-discovery\nclusterrole/system:volume-scheduler\nclusterrolebinding/system:node\nclusterrole/view\nclusterrolebinding/system:node-proxier\nclusterrolebinding/system:public-info-viewer\nclusterrolebinding/system:service-account-issuer-discovery\nclusterrolebinding/system:volume-scheduler\nnamespace/default\nnamespace/envoy-gateway-system\nnamespace/kube-node-lease\nnamespace/kube-public\nnamespace/kube-system\nnamespace/secretgen-controller",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "node/controller",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "clusterrole/admin",
                                "clusterrole/cilium",
                                "clusterrole/cilium-operator",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "clusterrole/cluster-admin",
                                "clusterrole/edit",
                                "clusterrole/envoy-gateway-gateway-helm-certgen:envoy-gateway-system",
                                "clusterrole/envoy-gateway-gateway-helm-envoy-gateway-role",
                                "clusterrole/kubeadm:get-nodes",
                                "clusterrole/secretgen-controller-cluster-role",
                                "clusterrole/system:aggregate-to-admin",
                                "clusterrole/system:aggregate-to-edit",
                                "clusterrole/system:aggregate-to-view",
                                "clusterrole/system:auth-delegator",
                                "clusterrolebinding/cilium",
                                "clusterrole/system:basic-user",
                                "clusterrolebinding/cilium-operator",
                                "clusterrolebinding/cluster-admin",
                                "clusterrole/system:certificates.k8s.io:certificatesigningrequests:nodeclient",
                                "clusterrolebinding/envoy-gateway-gateway-helm-certgen:envoy-gateway-system",
                                "clusterrole/system:certificates.k8s.io:certificatesigningrequests:selfnodeclient",
                                "clusterrolebinding/envoy-gateway-gateway-helm-envoy-gateway-rolebinding",
                                "clusterrolebinding/kubeadm:get-nodes",
                                "clusterrolebinding/kubeadm:kubelet-bootstrap",
                                "clusterrole/system:certificates.k8s.io:kube-apiserver-client-approver",
                                "clusterrolebinding/kubeadm:node-autoapprove-bootstrap",
                                "clusterrole/system:certificates.k8s.io:kube-apiserver-client-kubelet-approver",
                                "clusterrolebinding/kubeadm:node-autoapprove-certificate-rotation",
                                "clusterrole/system:certificates.k8s.io:kubelet-serving-approver",
                                "clusterrolebinding/kubeadm:node-proxier",
                                "clusterrole/system:certificates.k8s.io:legacy-unknown-approver",
                                "clusterrolebinding/secretgen-controller-cluster-role-binding",
                                "clusterrole/system:controller:attachdetach-controller",
                                "clusterrolebinding/system:basic-user",
                                "clusterrole/system:controller:certificate-controller",
                                "clusterrolebinding/system:controller:attachdetach-controller",
                                "clusterrole/system:controller:clusterrole-aggregation-controller",
                                "clusterrole/system:controller:cronjob-controller",
                                "clusterrolebinding/system:controller:certificate-controller",
                                "clusterrole/system:controller:daemon-set-controller",
                                "clusterrolebinding/system:controller:clusterrole-aggregation-controller",
                                "clusterrole/system:controller:deployment-controller",
                                "clusterrolebinding/system:controller:cronjob-controller",
                                "clusterrole/system:controller:disruption-controller",
                                "clusterrolebinding/system:controller:daemon-set-controller",
                                "clusterrole/system:controller:endpoint-controller",
                                "clusterrolebinding/system:controller:deployment-controller",
                                "clusterrole/system:controller:endpointslice-controller",
                                "clusterrolebinding/system:controller:disruption-controller",
                                "clusterrole/system:controller:endpointslicemirroring-controller",
                                "clusterrolebinding/system:controller:endpoint-controller",
                                "clusterrole/system:controller:ephemeral-volume-controller",
                                "clusterrolebinding/system:controller:endpointslice-controller",
                                "clusterrole/system:controller:expand-controller",
                                "clusterrolebinding/system:controller:endpointslicemirroring-controller",
                                "clusterrolebinding/system:controller:ephemeral-volume-controller",
                                "clusterrole/system:controller:generic-garbage-collector",
                                "clusterrole/system:controller:horizontal-pod-autoscaler",
                                "clusterrolebinding/system:controller:expand-controller",
                                "clusterrolebinding/system:controller:generic-garbage-collector",
                                "clusterrole/system:controller:job-controller",
                                "clusterrole/system:controller:namespace-controller",
                                "clusterrolebinding/system:controller:horizontal-pod-autoscaler",
                                "clusterrole/system:controller:node-controller",
                                "clusterrole/system:controller:persistent-volume-binder",
                                "clusterrolebinding/system:controller:job-controller",
                                "clusterrole/system:controller:pod-garbage-collector",
                                "clusterrole/system:controller:pv-protection-controller",
                                "clusterrolebinding/system:controller:namespace-controller",
                                "clusterrole/system:controller:pvc-protection-controller",
                                "clusterrole/system:controller:replicaset-controller",
                                "clusterrole/system:controller:replication-controller",
                                "clusterrolebinding/system:controller:node-controller",
                                "clusterrole/system:controller:resourcequota-controller",
                                "clusterrolebinding/system:controller:persistent-volume-binder",
                                "clusterrole/system:controller:root-ca-cert-publisher",
                                "clusterrole/system:controller:route-controller",
                                "clusterrole/system:controller:service-account-controller",
                                "clusterrolebinding/system:controller:pod-garbage-collector",
                                "clusterrole/system:controller:service-controller",
                                "clusterrole/system:controller:statefulset-controller",
                                "clusterrolebinding/system:controller:pv-protection-controller",
                                "clusterrole/system:controller:ttl-after-finished-controller",
                                "clusterrolebinding/system:controller:pvc-protection-controller",
                                "clusterrole/system:controller:ttl-controller",
                                "clusterrolebinding/system:controller:replicaset-controller",
                                "clusterrole/system:coredns",
                                "clusterrolebinding/system:controller:replication-controller",
                                "clusterrole/system:discovery",
                                "clusterrolebinding/system:controller:resourcequota-controller",
                                "clusterrolebinding/system:controller:root-ca-cert-publisher",
                                "clusterrole/system:heapster",
                                "clusterrolebinding/system:controller:route-controller",
                                "clusterrole/system:kube-aggregator",
                                "clusterrole/system:kube-controller-manager",
                                "clusterrolebinding/system:controller:service-account-controller",
                                "clusterrole/system:kube-dns",
                                "clusterrolebinding/system:controller:service-controller",
                                "clusterrole/system:kube-scheduler",
                                "clusterrolebinding/system:controller:statefulset-controller",
                                "clusterrole/system:kubelet-api-admin",
                                "clusterrolebinding/system:controller:ttl-after-finished-controller",
                                "clusterrole/system:monitoring",
                                "clusterrolebinding/system:controller:ttl-controller",
                                "clusterrolebinding/system:coredns",
                                "clusterrole/system:node",
                                "clusterrolebinding/system:discovery",
                                "clusterrole/system:node-bootstrapper",
                                "clusterrolebinding/system:kube-controller-manager",
                                "clusterrole/system:node-problem-detector",
                                "clusterrolebinding/system:kube-dns",
                                "clusterrole/system:node-proxier",
                                "clusterrole/system:persistent-volume-provisioner",
                                "clusterrolebinding/system:kube-scheduler",
                                "clusterrole/system:public-info-viewer",
                                "clusterrolebinding/system:monitoring",
                                "clusterrole/system:service-account-issuer-discovery",
                                "clusterrole/system:volume-scheduler",
                                "clusterrolebinding/system:node",
                                "clusterrole/view",
                                "clusterrolebinding/system:node-proxier",
                                "clusterrolebinding/system:public-info-viewer",
                                "clusterrolebinding/system:service-account-issuer-discovery",
                                "clusterrolebinding/system:volume-scheduler",
                                "namespace/default",
                                "namespace/envoy-gateway-system",
                                "namespace/kube-node-lease",
                                "namespace/kube-public",
                                "namespace/kube-system",
                                "namespace/secretgen-controller"
                            ],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-00000000001a-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:26.702894Z",
                            "start": "2026-10-26T23:59:13.131878Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000001a",
                        "name": "Gathering descriptions for cluster scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:26.976342Z",
                            "start": "2026-10-26T23:59:26.713957Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000001b",
                        "name": "creating directory for namespace scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,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:13.272358",
                            "end": "2026-10-26 23:59:40.562706",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nexport OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,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-6443-29e5-00000000001c-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:27.290348",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\ndefault/configmaps/kube-root-ca.crt\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/configmaps/envoy-gateway-config\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/configmaps/kube-root-ca.crt\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/deployment/envoy-gateway\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/endpoints/envoy-gateway\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\ndefault/endpoints/kubernetes\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/pods/envoy-gateway-78446f96c9-92qxq\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-certgen\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-infra-manager\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-leader-election-rolebinding\nenvoy-gateway-system/roles/envoy-gateway-gateway-helm-certgen\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/roles/envoy-gateway-gateway-helm-infra-manager\nenvoy-gateway-system/roles/envoy-gateway-gateway-helm-leader-election-role\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/secrets/envoy\nenvoy-gateway-system/secrets/envoy-gateway\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/secrets/envoy-oidc-hmac\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/secrets/envoy-rate-limit\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/secrets/sh.helm.release.v1.envoy-gateway.v1\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/serviceaccounts/default\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/serviceaccounts/envoy-gateway\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nenvoy-gateway-system/serviceaccounts/envoy-gateway-gateway-helm-certgen\nenvoy-gateway-system/services/envoy-gateway\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\ndefault/secrets/test-password\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\ndefault/serviceaccounts/default\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-node-lease/configmaps/kube-root-ca.crt\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\ndefault/services/kubernetes\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-public/configmaps/cluster-info\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-public/configmaps/kube-root-ca.crt\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-node-lease/serviceaccounts/default\nkube-public/rolebindings/kubeadm:bootstrap-signer-clusterinfo\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-public/rolebindings/system:controller:bootstrap-signer\nkube-public/roles/kubeadm:bootstrap-signer-clusterinfo\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-public/roles/system:controller:bootstrap-signer\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/cilium-config\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/coredns\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/extension-apiserver-authentication\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/kube-apiserver-legacy-service-account-token-tracking\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/kube-proxy\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/kube-root-ca.crt\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/kubeadm-config\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/configmaps/kubelet-config\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-public/serviceaccounts/default\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/daemonsets/cilium\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/daemonsets/kube-proxy\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/deployment/cilium-operator\nxargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value\nkube-system/deployment/coredns\nkube-system/endpoints/kube-dns\nsecretgen-controller/configmaps/kube-root-ca.crt\nsecretgen-controller/deployment/secretgen-controller\nkube-system/pods/cilium-operator-7fcd8d6ffd-dc7zq\nkube-system/pods/cilium-znw4f\nkube-system/pods/coredns-5dd5756b68-q22nr\nkube-system/pods/coredns-77cccfdc44-5fpm4\nkube-system/pods/coredns-77cccfdc44-tskbx\nkube-system/pods/etcd-controller\nkube-system/pods/kube-apiserver-controller\nkube-system/pods/kube-controller-manager-controller\nkube-system/pods/kube-proxy-ph9nd\nkube-system/pods/kube-scheduler-controller\nkube-system/pods/kube-vip-controller\nkube-system/rolebindings/cilium-config-agent\nkube-system/rolebindings/kube-proxy\nkube-system/rolebindings/kubeadm:kubeadm-certs\nkube-system/rolebindings/kubeadm:kubelet-config\nkube-system/rolebindings/kubeadm:nodes-kubeadm-config\nkube-system/rolebindings/system::extension-apiserver-authentication-reader\nkube-system/rolebindings/system::leader-locking-kube-controller-manager\nkube-system/rolebindings/system::leader-locking-kube-scheduler\nkube-system/rolebindings/system:controller:bootstrap-signer\nkube-system/rolebindings/system:controller:cloud-provider\nkube-system/rolebindings/system:controller:token-cleaner\nkube-system/roles/cilium-config-agent\nkube-system/roles/extension-apiserver-authentication-reader\nkube-system/roles/kube-proxy\nkube-system/roles/kubeadm:kubeadm-certs\nkube-system/roles/kubeadm:kubelet-config\nkube-system/roles/kubeadm:nodes-kubeadm-config\nkube-system/roles/system::leader-locking-kube-controller-manager\nkube-system/roles/system::leader-locking-kube-scheduler\nkube-system/roles/system:controller:bootstrap-signer\nkube-system/roles/system:controller:cloud-provider\nkube-system/roles/system:controller:token-cleaner\nsecretgen-controller/pods/secretgen-controller-ffb97c6dc-j2fvp\nkube-system/secrets/bootstrap-token-k72g1n\nkube-system/secrets/bootstrap-token-ytt6ru\nkube-system/secrets/kubeadm-certs\nkube-system/secrets/sh.helm.release.v1.cilium.v1\nkube-system/serviceaccounts/attachdetach-controller\nkube-system/serviceaccounts/bootstrap-signer\nkube-system/serviceaccounts/certificate-controller\nkube-system/serviceaccounts/cilium\nkube-system/serviceaccounts/cilium-operator\nkube-system/serviceaccounts/clusterrole-aggregation-controller\nkube-system/serviceaccounts/coredns\nkube-system/serviceaccounts/cronjob-controller\nkube-system/serviceaccounts/daemon-set-controller\nkube-system/serviceaccounts/default\nkube-system/serviceaccounts/deployment-controller\nkube-system/serviceaccounts/disruption-controller\nkube-system/serviceaccounts/endpoint-controller\nkube-system/serviceaccounts/endpointslice-controller\nkube-system/serviceaccounts/endpointslicemirroring-controller\nkube-system/serviceaccounts/ephemeral-volume-controller\nkube-system/serviceaccounts/expand-controller\nkube-system/serviceaccounts/generic-garbage-collector\nkube-system/serviceaccounts/horizontal-pod-autoscaler\nkube-system/serviceaccounts/job-controller\nkube-system/serviceaccounts/kube-proxy\nkube-system/serviceaccounts/namespace-controller\nkube-system/serviceaccounts/node-controller\nkube-system/serviceaccounts/persistent-volume-binder\nkube-system/serviceaccounts/pod-garbage-collector\nkube-system/serviceaccounts/pv-protection-controller\nkube-system/serviceaccounts/pvc-protection-controller\nkube-system/serviceaccounts/replicaset-controller\nkube-system/serviceaccounts/replication-controller\nkube-system/serviceaccounts/resourcequota-controller\nkube-system/serviceaccounts/root-ca-cert-publisher\nkube-system/serviceaccounts/service-account-controller\nkube-system/serviceaccounts/service-controller\nkube-system/serviceaccounts/statefulset-controller\nkube-system/serviceaccounts/token-cleaner\nkube-system/serviceaccounts/ttl-after-finished-controller\nkube-system/serviceaccounts/ttl-controller\nkube-system/services/kube-dns\nsecretgen-controller/serviceaccounts/default\nsecretgen-controller/serviceaccounts/secretgen-controller-sa",
                            "stdout_lines": [
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "default/configmaps/kube-root-ca.crt",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/configmaps/envoy-gateway-config",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/configmaps/kube-root-ca.crt",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/deployment/envoy-gateway",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/endpoints/envoy-gateway",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "default/endpoints/kubernetes",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/pods/envoy-gateway-78446f96c9-92qxq",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-certgen",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-infra-manager",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-leader-election-rolebinding",
                                "envoy-gateway-system/roles/envoy-gateway-gateway-helm-certgen",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/roles/envoy-gateway-gateway-helm-infra-manager",
                                "envoy-gateway-system/roles/envoy-gateway-gateway-helm-leader-election-role",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/secrets/envoy",
                                "envoy-gateway-system/secrets/envoy-gateway",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/secrets/envoy-oidc-hmac",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/secrets/envoy-rate-limit",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/secrets/sh.helm.release.v1.envoy-gateway.v1",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/serviceaccounts/default",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/serviceaccounts/envoy-gateway",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "envoy-gateway-system/serviceaccounts/envoy-gateway-gateway-helm-certgen",
                                "envoy-gateway-system/services/envoy-gateway",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "default/secrets/test-password",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "default/serviceaccounts/default",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-node-lease/configmaps/kube-root-ca.crt",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "default/services/kubernetes",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-public/configmaps/cluster-info",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-public/configmaps/kube-root-ca.crt",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-node-lease/serviceaccounts/default",
                                "kube-public/rolebindings/kubeadm:bootstrap-signer-clusterinfo",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-public/rolebindings/system:controller:bootstrap-signer",
                                "kube-public/roles/kubeadm:bootstrap-signer-clusterinfo",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-public/roles/system:controller:bootstrap-signer",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/cilium-config",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/coredns",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/extension-apiserver-authentication",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/kube-apiserver-legacy-service-account-token-tracking",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/kube-proxy",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/kube-root-ca.crt",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/kubeadm-config",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/configmaps/kubelet-config",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-public/serviceaccounts/default",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/daemonsets/cilium",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/daemonsets/kube-proxy",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/deployment/cilium-operator",
                                "xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value",
                                "kube-system/deployment/coredns",
                                "kube-system/endpoints/kube-dns",
                                "secretgen-controller/configmaps/kube-root-ca.crt",
                                "secretgen-controller/deployment/secretgen-controller",
                                "kube-system/pods/cilium-operator-7fcd8d6ffd-dc7zq",
                                "kube-system/pods/cilium-znw4f",
                                "kube-system/pods/coredns-5dd5756b68-q22nr",
                                "kube-system/pods/coredns-77cccfdc44-5fpm4",
                                "kube-system/pods/coredns-77cccfdc44-tskbx",
                                "kube-system/pods/etcd-controller",
                                "kube-system/pods/kube-apiserver-controller",
                                "kube-system/pods/kube-controller-manager-controller",
                                "kube-system/pods/kube-proxy-ph9nd",
                                "kube-system/pods/kube-scheduler-controller",
                                "kube-system/pods/kube-vip-controller",
                                "kube-system/rolebindings/cilium-config-agent",
                                "kube-system/rolebindings/kube-proxy",
                                "kube-system/rolebindings/kubeadm:kubeadm-certs",
                                "kube-system/rolebindings/kubeadm:kubelet-config",
                                "kube-system/rolebindings/kubeadm:nodes-kubeadm-config",
                                "kube-system/rolebindings/system::extension-apiserver-authentication-reader",
                                "kube-system/rolebindings/system::leader-locking-kube-controller-manager",
                                "kube-system/rolebindings/system::leader-locking-kube-scheduler",
                                "kube-system/rolebindings/system:controller:bootstrap-signer",
                                "kube-system/rolebindings/system:controller:cloud-provider",
                                "kube-system/rolebindings/system:controller:token-cleaner",
                                "kube-system/roles/cilium-config-agent",
                                "kube-system/roles/extension-apiserver-authentication-reader",
                                "kube-system/roles/kube-proxy",
                                "kube-system/roles/kubeadm:kubeadm-certs",
                                "kube-system/roles/kubeadm:kubelet-config",
                                "kube-system/roles/kubeadm:nodes-kubeadm-config",
                                "kube-system/roles/system::leader-locking-kube-controller-manager",
                                "kube-system/roles/system::leader-locking-kube-scheduler",
                                "kube-system/roles/system:controller:bootstrap-signer",
                                "kube-system/roles/system:controller:cloud-provider",
                                "kube-system/roles/system:controller:token-cleaner",
                                "secretgen-controller/pods/secretgen-controller-ffb97c6dc-j2fvp",
                                "kube-system/secrets/bootstrap-token-k72g1n",
                                "kube-system/secrets/bootstrap-token-ytt6ru",
                                "kube-system/secrets/kubeadm-certs",
                                "kube-system/secrets/sh.helm.release.v1.cilium.v1",
                                "kube-system/serviceaccounts/attachdetach-controller",
                                "kube-system/serviceaccounts/bootstrap-signer",
                                "kube-system/serviceaccounts/certificate-controller",
                                "kube-system/serviceaccounts/cilium",
                                "kube-system/serviceaccounts/cilium-operator",
                                "kube-system/serviceaccounts/clusterrole-aggregation-controller",
                                "kube-system/serviceaccounts/coredns",
                                "kube-system/serviceaccounts/cronjob-controller",
                                "kube-system/serviceaccounts/daemon-set-controller",
                                "kube-system/serviceaccounts/default",
                                "kube-system/serviceaccounts/deployment-controller",
                                "kube-system/serviceaccounts/disruption-controller",
                                "kube-system/serviceaccounts/endpoint-controller",
                                "kube-system/serviceaccounts/endpointslice-controller",
                                "kube-system/serviceaccounts/endpointslicemirroring-controller",
                                "kube-system/serviceaccounts/ephemeral-volume-controller",
                                "kube-system/serviceaccounts/expand-controller",
                                "kube-system/serviceaccounts/generic-garbage-collector",
                                "kube-system/serviceaccounts/horizontal-pod-autoscaler",
                                "kube-system/serviceaccounts/job-controller",
                                "kube-system/serviceaccounts/kube-proxy",
                                "kube-system/serviceaccounts/namespace-controller",
                                "kube-system/serviceaccounts/node-controller",
                                "kube-system/serviceaccounts/persistent-volume-binder",
                                "kube-system/serviceaccounts/pod-garbage-collector",
                                "kube-system/serviceaccounts/pv-protection-controller",
                                "kube-system/serviceaccounts/pvc-protection-controller",
                                "kube-system/serviceaccounts/replicaset-controller",
                                "kube-system/serviceaccounts/replication-controller",
                                "kube-system/serviceaccounts/resourcequota-controller",
                                "kube-system/serviceaccounts/root-ca-cert-publisher",
                                "kube-system/serviceaccounts/service-account-controller",
                                "kube-system/serviceaccounts/service-controller",
                                "kube-system/serviceaccounts/statefulset-controller",
                                "kube-system/serviceaccounts/token-cleaner",
                                "kube-system/serviceaccounts/ttl-after-finished-controller",
                                "kube-system/serviceaccounts/ttl-controller",
                                "kube-system/services/kube-dns",
                                "secretgen-controller/serviceaccounts/default",
                                "secretgen-controller/serviceaccounts/secretgen-controller-sa"
                            ],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-00000000001c-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:41.049046Z",
                            "start": "2026-10-26T23:59:27.018607Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000001c",
                        "name": "Gathering descriptions for namespace scoped objects"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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@162.253.55.113:/tmp/logs/objects /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                            "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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                                    "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@162.253.55.113:/tmp/logs/objects",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ objects/\ncd+++++++++ objects/cluster/\ncd+++++++++ objects/cluster/clusterrole/\n>f+++++++++ objects/cluster/clusterrole/admin.txt\n>f+++++++++ objects/cluster/clusterrole/admin.yaml\n>f+++++++++ objects/cluster/clusterrole/cilium-operator.txt\n>f+++++++++ objects/cluster/clusterrole/cilium-operator.yaml\n>f+++++++++ objects/cluster/clusterrole/cilium.txt\n>f+++++++++ objects/cluster/clusterrole/cilium.yaml\n>f+++++++++ objects/cluster/clusterrole/cluster-admin.txt\n>f+++++++++ objects/cluster/clusterrole/cluster-admin.yaml\n>f+++++++++ objects/cluster/clusterrole/edit.txt\n>f+++++++++ objects/cluster/clusterrole/edit.yaml\n>f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.txt\n>f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.yaml\n>f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-envoy-gateway-role.txt\n>f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-envoy-gateway-role.yaml\n>f+++++++++ objects/cluster/clusterrole/kubeadm:get-nodes.txt\n>f+++++++++ objects/cluster/clusterrole/kubeadm:get-nodes.yaml\n>f+++++++++ objects/cluster/clusterrole/secretgen-controller-cluster-role.txt\n>f+++++++++ objects/cluster/clusterrole/secretgen-controller-cluster-role.yaml\n>f+++++++++ objects/cluster/clusterrole/system:aggregate-to-admin.txt\n>f+++++++++ objects/cluster/clusterrole/system:aggregate-to-admin.yaml\n>f+++++++++ objects/cluster/clusterrole/system:aggregate-to-edit.txt\n>f+++++++++ objects/cluster/clusterrole/system:aggregate-to-edit.yaml\n>f+++++++++ objects/cluster/clusterrole/system:aggregate-to-view.txt\n>f+++++++++ objects/cluster/clusterrole/system:aggregate-to-view.yaml\n>f+++++++++ objects/cluster/clusterrole/system:auth-delegator.txt\n>f+++++++++ objects/cluster/clusterrole/system:auth-delegator.yaml\n>f+++++++++ objects/cluster/clusterrole/system:basic-user.txt\n>f+++++++++ objects/cluster/clusterrole/system:basic-user.yaml\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:nodeclient.txt\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:nodeclient.yaml\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:selfnodeclient.txt\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:selfnodeclient.yaml\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-approver.txt\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-approver.yaml\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-kubelet-approver.txt\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-kubelet-approver.yaml\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kubelet-serving-approver.txt\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kubelet-serving-approver.yaml\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:legacy-unknown-approver.txt\n>f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:legacy-unknown-approver.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:attachdetach-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:attachdetach-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:certificate-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:certificate-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:clusterrole-aggregation-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:clusterrole-aggregation-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:cronjob-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:cronjob-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:daemon-set-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:daemon-set-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:deployment-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:deployment-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:disruption-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:disruption-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:endpoint-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:endpoint-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:endpointslice-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:endpointslice-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:endpointslicemirroring-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:endpointslicemirroring-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:ephemeral-volume-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:ephemeral-volume-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:expand-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:expand-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:generic-garbage-collector.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:generic-garbage-collector.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:horizontal-pod-autoscaler.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:horizontal-pod-autoscaler.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:job-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:job-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:namespace-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:namespace-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:node-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:node-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:persistent-volume-binder.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:persistent-volume-binder.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:pod-garbage-collector.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:pod-garbage-collector.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:pv-protection-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:pv-protection-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:pvc-protection-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:pvc-protection-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:replicaset-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:replicaset-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:replication-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:replication-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:resourcequota-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:resourcequota-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:root-ca-cert-publisher.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:root-ca-cert-publisher.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:route-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:route-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:service-account-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:service-account-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:service-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:service-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:statefulset-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:statefulset-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:ttl-after-finished-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:ttl-after-finished-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:controller:ttl-controller.txt\n>f+++++++++ objects/cluster/clusterrole/system:controller:ttl-controller.yaml\n>f+++++++++ objects/cluster/clusterrole/system:coredns.txt\n>f+++++++++ objects/cluster/clusterrole/system:coredns.yaml\n>f+++++++++ objects/cluster/clusterrole/system:discovery.txt\n>f+++++++++ objects/cluster/clusterrole/system:discovery.yaml\n>f+++++++++ objects/cluster/clusterrole/system:heapster.txt\n>f+++++++++ objects/cluster/clusterrole/system:heapster.yaml\n>f+++++++++ objects/cluster/clusterrole/system:kube-aggregator.txt\n>f+++++++++ objects/cluster/clusterrole/system:kube-aggregator.yaml\n>f+++++++++ objects/cluster/clusterrole/system:kube-controller-manager.txt\n>f+++++++++ objects/cluster/clusterrole/system:kube-controller-manager.yaml\n>f+++++++++ objects/cluster/clusterrole/system:kube-dns.txt\n>f+++++++++ objects/cluster/clusterrole/system:kube-dns.yaml\n>f+++++++++ objects/cluster/clusterrole/system:kube-scheduler.txt\n>f+++++++++ objects/cluster/clusterrole/system:kube-scheduler.yaml\n>f+++++++++ objects/cluster/clusterrole/system:kubelet-api-admin.txt\n>f+++++++++ objects/cluster/clusterrole/system:kubelet-api-admin.yaml\n>f+++++++++ objects/cluster/clusterrole/system:monitoring.txt\n>f+++++++++ objects/cluster/clusterrole/system:monitoring.yaml\n>f+++++++++ objects/cluster/clusterrole/system:node-bootstrapper.txt\n>f+++++++++ objects/cluster/clusterrole/system:node-bootstrapper.yaml\n>f+++++++++ objects/cluster/clusterrole/system:node-problem-detector.txt\n>f+++++++++ objects/cluster/clusterrole/system:node-problem-detector.yaml\n>f+++++++++ objects/cluster/clusterrole/system:node-proxier.txt\n>f+++++++++ objects/cluster/clusterrole/system:node-proxier.yaml\n>f+++++++++ objects/cluster/clusterrole/system:node.txt\n>f+++++++++ objects/cluster/clusterrole/system:node.yaml\n>f+++++++++ objects/cluster/clusterrole/system:persistent-volume-provisioner.txt\n>f+++++++++ objects/cluster/clusterrole/system:persistent-volume-provisioner.yaml\n>f+++++++++ objects/cluster/clusterrole/system:public-info-viewer.txt\n>f+++++++++ objects/cluster/clusterrole/system:public-info-viewer.yaml\n>f+++++++++ objects/cluster/clusterrole/system:service-account-issuer-discovery.txt\n>f+++++++++ objects/cluster/clusterrole/system:service-account-issuer-discovery.yaml\n>f+++++++++ objects/cluster/clusterrole/system:volume-scheduler.txt\n>f+++++++++ objects/cluster/clusterrole/system:volume-scheduler.yaml\n>f+++++++++ objects/cluster/clusterrole/view.txt\n>f+++++++++ objects/cluster/clusterrole/view.yaml\ncd+++++++++ objects/cluster/clusterrolebinding/\n>f+++++++++ objects/cluster/clusterrolebinding/cilium-operator.txt\n>f+++++++++ objects/cluster/clusterrolebinding/cilium-operator.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/cilium.txt\n>f+++++++++ objects/cluster/clusterrolebinding/cilium.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/cluster-admin.txt\n>f+++++++++ objects/cluster/clusterrolebinding/cluster-admin.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.txt\n>f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-envoy-gateway-rolebinding.txt\n>f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-envoy-gateway-rolebinding.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:get-nodes.txt\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:get-nodes.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:kubelet-bootstrap.txt\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:kubelet-bootstrap.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-bootstrap.txt\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-bootstrap.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-certificate-rotation.txt\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-certificate-rotation.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-proxier.txt\n>f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-proxier.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/secretgen-controller-cluster-role-binding.txt\n>f+++++++++ objects/cluster/clusterrolebinding/secretgen-controller-cluster-role-binding.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:basic-user.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:basic-user.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:attachdetach-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:attachdetach-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:certificate-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:certificate-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:clusterrole-aggregation-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:clusterrole-aggregation-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:cronjob-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:cronjob-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:daemon-set-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:daemon-set-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:deployment-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:deployment-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:disruption-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:disruption-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpoint-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpoint-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslice-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslice-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslicemirroring-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslicemirroring-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:ephemeral-volume-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:ephemeral-volume-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:expand-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:expand-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:generic-garbage-collector.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:generic-garbage-collector.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:horizontal-pod-autoscaler.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:horizontal-pod-autoscaler.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:job-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:job-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:namespace-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:namespace-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:node-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:node-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:persistent-volume-binder.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:persistent-volume-binder.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:pod-garbage-collector.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:pod-garbage-collector.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:pv-protection-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:pv-protection-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:pvc-protection-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:pvc-protection-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:replicaset-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:replicaset-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:replication-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:replication-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:resourcequota-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:resourcequota-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:root-ca-cert-publisher.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:root-ca-cert-publisher.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:route-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:route-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-account-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-account-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:statefulset-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:statefulset-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-after-finished-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-after-finished-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-controller.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-controller.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:coredns.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:coredns.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:discovery.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:discovery.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:kube-controller-manager.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:kube-controller-manager.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:kube-dns.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:kube-dns.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:kube-scheduler.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:kube-scheduler.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:monitoring.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:monitoring.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:node-proxier.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:node-proxier.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:node.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:node.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:public-info-viewer.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:public-info-viewer.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:service-account-issuer-discovery.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:service-account-issuer-discovery.yaml\n>f+++++++++ objects/cluster/clusterrolebinding/system:volume-scheduler.txt\n>f+++++++++ objects/cluster/clusterrolebinding/system:volume-scheduler.yaml\ncd+++++++++ objects/cluster/namespace/\n>f+++++++++ objects/cluster/namespace/default.txt\n>f+++++++++ objects/cluster/namespace/default.yaml\n>f+++++++++ objects/cluster/namespace/envoy-gateway-system.txt\n>f+++++++++ objects/cluster/namespace/envoy-gateway-system.yaml\n>f+++++++++ objects/cluster/namespace/kube-node-lease.txt\n>f+++++++++ objects/cluster/namespace/kube-node-lease.yaml\n>f+++++++++ objects/cluster/namespace/kube-public.txt\n>f+++++++++ objects/cluster/namespace/kube-public.yaml\n>f+++++++++ objects/cluster/namespace/kube-system.txt\n>f+++++++++ objects/cluster/namespace/kube-system.yaml\n>f+++++++++ objects/cluster/namespace/secretgen-controller.txt\n>f+++++++++ objects/cluster/namespace/secretgen-controller.yaml\ncd+++++++++ objects/cluster/node/\n>f+++++++++ objects/cluster/node/controller.txt\n>f+++++++++ objects/cluster/node/controller.yaml\ncd+++++++++ objects/namespaced/\ncd+++++++++ objects/namespaced/default/\ncd+++++++++ objects/namespaced/default/configmaps/\n>f+++++++++ objects/namespaced/default/configmaps/kube-root-ca.crt.txt\n>f+++++++++ objects/namespaced/default/configmaps/kube-root-ca.crt.yaml\ncd+++++++++ objects/namespaced/default/endpoints/\n>f+++++++++ objects/namespaced/default/endpoints/kubernetes.txt\n>f+++++++++ objects/namespaced/default/endpoints/kubernetes.yaml\ncd+++++++++ objects/namespaced/default/secrets/\n>f+++++++++ objects/namespaced/default/secrets/test-password.txt\n>f+++++++++ objects/namespaced/default/secrets/test-password.yaml\ncd+++++++++ objects/namespaced/default/serviceaccounts/\n>f+++++++++ objects/namespaced/default/serviceaccounts/default.txt\n>f+++++++++ objects/namespaced/default/serviceaccounts/default.yaml\ncd+++++++++ objects/namespaced/default/services/\n>f+++++++++ objects/namespaced/default/services/kubernetes.txt\n>f+++++++++ objects/namespaced/default/services/kubernetes.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/\ncd+++++++++ objects/namespaced/envoy-gateway-system/configmaps/\n>f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/envoy-gateway-config.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/envoy-gateway-config.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/kube-root-ca.crt.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/kube-root-ca.crt.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/deployment/\n>f+++++++++ objects/namespaced/envoy-gateway-system/deployment/envoy-gateway.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/deployment/envoy-gateway.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/endpoints/\n>f+++++++++ objects/namespaced/envoy-gateway-system/endpoints/envoy-gateway.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/endpoints/envoy-gateway.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/pods/\n>f+++++++++ objects/namespaced/envoy-gateway-system/pods/envoy-gateway-78446f96c9-92qxq.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/pods/envoy-gateway-78446f96c9-92qxq.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/\n>f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-certgen.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-certgen.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-infra-manager.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-infra-manager.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-leader-election-rolebinding.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-leader-election-rolebinding.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/roles/\n>f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-certgen.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-certgen.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-infra-manager.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-infra-manager.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-leader-election-role.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-leader-election-role.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/secrets/\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-gateway.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-gateway.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-oidc-hmac.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-oidc-hmac.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-rate-limit.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-rate-limit.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/sh.helm.release.v1.envoy-gateway.v1.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/secrets/sh.helm.release.v1.envoy-gateway.v1.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/\n>f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/default.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/default.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway-gateway-helm-certgen.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway-gateway-helm-certgen.yaml\n>f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway.yaml\ncd+++++++++ objects/namespaced/envoy-gateway-system/services/\n>f+++++++++ objects/namespaced/envoy-gateway-system/services/envoy-gateway.txt\n>f+++++++++ objects/namespaced/envoy-gateway-system/services/envoy-gateway.yaml\ncd+++++++++ objects/namespaced/kube-node-lease/\ncd+++++++++ objects/namespaced/kube-node-lease/configmaps/\n>f+++++++++ objects/namespaced/kube-node-lease/configmaps/kube-root-ca.crt.txt\n>f+++++++++ objects/namespaced/kube-node-lease/configmaps/kube-root-ca.crt.yaml\ncd+++++++++ objects/namespaced/kube-node-lease/serviceaccounts/\n>f+++++++++ objects/namespaced/kube-node-lease/serviceaccounts/default.txt\n>f+++++++++ objects/namespaced/kube-node-lease/serviceaccounts/default.yaml\ncd+++++++++ objects/namespaced/kube-public/\ncd+++++++++ objects/namespaced/kube-public/configmaps/\n>f+++++++++ objects/namespaced/kube-public/configmaps/cluster-info.txt\n>f+++++++++ objects/namespaced/kube-public/configmaps/cluster-info.yaml\n>f+++++++++ objects/namespaced/kube-public/configmaps/kube-root-ca.crt.txt\n>f+++++++++ objects/namespaced/kube-public/configmaps/kube-root-ca.crt.yaml\ncd+++++++++ objects/namespaced/kube-public/rolebindings/\n>f+++++++++ objects/namespaced/kube-public/rolebindings/kubeadm:bootstrap-signer-clusterinfo.txt\n>f+++++++++ objects/namespaced/kube-public/rolebindings/kubeadm:bootstrap-signer-clusterinfo.yaml\n>f+++++++++ objects/namespaced/kube-public/rolebindings/system:controller:bootstrap-signer.txt\n>f+++++++++ objects/namespaced/kube-public/rolebindings/system:controller:bootstrap-signer.yaml\ncd+++++++++ objects/namespaced/kube-public/roles/\n>f+++++++++ objects/namespaced/kube-public/roles/kubeadm:bootstrap-signer-clusterinfo.txt\n>f+++++++++ objects/namespaced/kube-public/roles/kubeadm:bootstrap-signer-clusterinfo.yaml\n>f+++++++++ objects/namespaced/kube-public/roles/system:controller:bootstrap-signer.txt\n>f+++++++++ objects/namespaced/kube-public/roles/system:controller:bootstrap-signer.yaml\ncd+++++++++ objects/namespaced/kube-public/serviceaccounts/\n>f+++++++++ objects/namespaced/kube-public/serviceaccounts/default.txt\n>f+++++++++ objects/namespaced/kube-public/serviceaccounts/default.yaml\ncd+++++++++ objects/namespaced/kube-system/\ncd+++++++++ objects/namespaced/kube-system/configmaps/\n>f+++++++++ objects/namespaced/kube-system/configmaps/cilium-config.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/cilium-config.yaml\n>f+++++++++ objects/namespaced/kube-system/configmaps/coredns.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/coredns.yaml\n>f+++++++++ objects/namespaced/kube-system/configmaps/extension-apiserver-authentication.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/extension-apiserver-authentication.yaml\n>f+++++++++ objects/namespaced/kube-system/configmaps/kube-apiserver-legacy-service-account-token-tracking.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/kube-apiserver-legacy-service-account-token-tracking.yaml\n>f+++++++++ objects/namespaced/kube-system/configmaps/kube-proxy.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/kube-proxy.yaml\n>f+++++++++ objects/namespaced/kube-system/configmaps/kube-root-ca.crt.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/kube-root-ca.crt.yaml\n>f+++++++++ objects/namespaced/kube-system/configmaps/kubeadm-config.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/kubeadm-config.yaml\n>f+++++++++ objects/namespaced/kube-system/configmaps/kubelet-config.txt\n>f+++++++++ objects/namespaced/kube-system/configmaps/kubelet-config.yaml\ncd+++++++++ objects/namespaced/kube-system/daemonsets/\n>f+++++++++ objects/namespaced/kube-system/daemonsets/cilium.txt\n>f+++++++++ objects/namespaced/kube-system/daemonsets/cilium.yaml\n>f+++++++++ objects/namespaced/kube-system/daemonsets/kube-proxy.txt\n>f+++++++++ objects/namespaced/kube-system/daemonsets/kube-proxy.yaml\ncd+++++++++ objects/namespaced/kube-system/deployment/\n>f+++++++++ objects/namespaced/kube-system/deployment/cilium-operator.txt\n>f+++++++++ objects/namespaced/kube-system/deployment/cilium-operator.yaml\n>f+++++++++ objects/namespaced/kube-system/deployment/coredns.txt\n>f+++++++++ objects/namespaced/kube-system/deployment/coredns.yaml\ncd+++++++++ objects/namespaced/kube-system/endpoints/\n>f+++++++++ objects/namespaced/kube-system/endpoints/kube-dns.txt\n>f+++++++++ objects/namespaced/kube-system/endpoints/kube-dns.yaml\ncd+++++++++ objects/namespaced/kube-system/pods/\n>f+++++++++ objects/namespaced/kube-system/pods/cilium-operator-7fcd8d6ffd-dc7zq.txt\n>f+++++++++ objects/namespaced/kube-system/pods/cilium-operator-7fcd8d6ffd-dc7zq.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/cilium-znw4f.txt\n>f+++++++++ objects/namespaced/kube-system/pods/cilium-znw4f.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/coredns-5dd5756b68-q22nr.txt\n>f+++++++++ objects/namespaced/kube-system/pods/coredns-5dd5756b68-q22nr.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-5fpm4.txt\n>f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-5fpm4.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-tskbx.txt\n>f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-tskbx.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/etcd-controller.txt\n>f+++++++++ objects/namespaced/kube-system/pods/etcd-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/kube-apiserver-controller.txt\n>f+++++++++ objects/namespaced/kube-system/pods/kube-apiserver-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/kube-controller-manager-controller.txt\n>f+++++++++ objects/namespaced/kube-system/pods/kube-controller-manager-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/kube-proxy-ph9nd.txt\n>f+++++++++ objects/namespaced/kube-system/pods/kube-proxy-ph9nd.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/kube-scheduler-controller.txt\n>f+++++++++ objects/namespaced/kube-system/pods/kube-scheduler-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/pods/kube-vip-controller.txt\n>f+++++++++ objects/namespaced/kube-system/pods/kube-vip-controller.yaml\ncd+++++++++ objects/namespaced/kube-system/rolebindings/\n>f+++++++++ objects/namespaced/kube-system/rolebindings/cilium-config-agent.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/cilium-config-agent.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kube-proxy.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kube-proxy.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubeadm-certs.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubeadm-certs.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubelet-config.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubelet-config.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:nodes-kubeadm-config.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:nodes-kubeadm-config.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system::extension-apiserver-authentication-reader.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system::extension-apiserver-authentication-reader.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-controller-manager.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-controller-manager.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-scheduler.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-scheduler.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:bootstrap-signer.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:bootstrap-signer.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:cloud-provider.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:cloud-provider.yaml\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:token-cleaner.txt\n>f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:token-cleaner.yaml\ncd+++++++++ objects/namespaced/kube-system/roles/\n>f+++++++++ objects/namespaced/kube-system/roles/cilium-config-agent.txt\n>f+++++++++ objects/namespaced/kube-system/roles/cilium-config-agent.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/extension-apiserver-authentication-reader.txt\n>f+++++++++ objects/namespaced/kube-system/roles/extension-apiserver-authentication-reader.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/kube-proxy.txt\n>f+++++++++ objects/namespaced/kube-system/roles/kube-proxy.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubeadm-certs.txt\n>f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubeadm-certs.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubelet-config.txt\n>f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubelet-config.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/kubeadm:nodes-kubeadm-config.txt\n>f+++++++++ objects/namespaced/kube-system/roles/kubeadm:nodes-kubeadm-config.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-controller-manager.txt\n>f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-controller-manager.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-scheduler.txt\n>f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-scheduler.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/system:controller:bootstrap-signer.txt\n>f+++++++++ objects/namespaced/kube-system/roles/system:controller:bootstrap-signer.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/system:controller:cloud-provider.txt\n>f+++++++++ objects/namespaced/kube-system/roles/system:controller:cloud-provider.yaml\n>f+++++++++ objects/namespaced/kube-system/roles/system:controller:token-cleaner.txt\n>f+++++++++ objects/namespaced/kube-system/roles/system:controller:token-cleaner.yaml\ncd+++++++++ objects/namespaced/kube-system/secrets/\n>f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-k72g1n.txt\n>f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-k72g1n.yaml\n>f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-ytt6ru.txt\n>f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-ytt6ru.yaml\n>f+++++++++ objects/namespaced/kube-system/secrets/kubeadm-certs.txt\n>f+++++++++ objects/namespaced/kube-system/secrets/kubeadm-certs.yaml\n>f+++++++++ objects/namespaced/kube-system/secrets/sh.helm.release.v1.cilium.v1.txt\n>f+++++++++ objects/namespaced/kube-system/secrets/sh.helm.release.v1.cilium.v1.yaml\ncd+++++++++ objects/namespaced/kube-system/serviceaccounts/\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/attachdetach-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/attachdetach-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/bootstrap-signer.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/bootstrap-signer.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/certificate-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/certificate-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium-operator.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium-operator.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/clusterrole-aggregation-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/clusterrole-aggregation-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/coredns.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/coredns.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/cronjob-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/cronjob-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/daemon-set-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/daemon-set-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/default.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/default.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/deployment-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/deployment-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/disruption-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/disruption-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpoint-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpoint-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslice-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslice-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslicemirroring-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslicemirroring-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/ephemeral-volume-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/ephemeral-volume-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/expand-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/expand-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/generic-garbage-collector.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/generic-garbage-collector.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/horizontal-pod-autoscaler.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/horizontal-pod-autoscaler.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/job-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/job-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/kube-proxy.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/kube-proxy.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/namespace-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/namespace-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/node-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/node-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/persistent-volume-binder.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/persistent-volume-binder.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/pod-garbage-collector.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/pod-garbage-collector.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/pv-protection-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/pv-protection-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/pvc-protection-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/pvc-protection-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/replicaset-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/replicaset-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/replication-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/replication-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/resourcequota-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/resourcequota-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/root-ca-cert-publisher.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/root-ca-cert-publisher.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-account-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-account-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/statefulset-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/statefulset-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/token-cleaner.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/token-cleaner.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-after-finished-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-after-finished-controller.yaml\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-controller.txt\n>f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-controller.yaml\ncd+++++++++ objects/namespaced/kube-system/services/\n>f+++++++++ objects/namespaced/kube-system/services/kube-dns.txt\n>f+++++++++ objects/namespaced/kube-system/services/kube-dns.yaml\ncd+++++++++ objects/namespaced/secretgen-controller/\ncd+++++++++ objects/namespaced/secretgen-controller/configmaps/\n>f+++++++++ objects/namespaced/secretgen-controller/configmaps/kube-root-ca.crt.txt\n>f+++++++++ objects/namespaced/secretgen-controller/configmaps/kube-root-ca.crt.yaml\ncd+++++++++ objects/namespaced/secretgen-controller/deployment/\n>f+++++++++ objects/namespaced/secretgen-controller/deployment/secretgen-controller.txt\n>f+++++++++ objects/namespaced/secretgen-controller/deployment/secretgen-controller.yaml\ncd+++++++++ objects/namespaced/secretgen-controller/pods/\n>f+++++++++ objects/namespaced/secretgen-controller/pods/secretgen-controller-ffb97c6dc-j2fvp.txt\n>f+++++++++ objects/namespaced/secretgen-controller/pods/secretgen-controller-ffb97c6dc-j2fvp.yaml\ncd+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/\n>f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/default.txt\n>f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/default.yaml\n>f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/secretgen-controller-sa.txt\n>f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/secretgen-controller-sa.yaml\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ objects/",
                                "cd+++++++++ objects/cluster/",
                                "cd+++++++++ objects/cluster/clusterrole/",
                                ">f+++++++++ objects/cluster/clusterrole/admin.txt",
                                ">f+++++++++ objects/cluster/clusterrole/admin.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/cilium-operator.txt",
                                ">f+++++++++ objects/cluster/clusterrole/cilium-operator.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/cilium.txt",
                                ">f+++++++++ objects/cluster/clusterrole/cilium.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/cluster-admin.txt",
                                ">f+++++++++ objects/cluster/clusterrole/cluster-admin.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/edit.txt",
                                ">f+++++++++ objects/cluster/clusterrole/edit.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.txt",
                                ">f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-envoy-gateway-role.txt",
                                ">f+++++++++ objects/cluster/clusterrole/envoy-gateway-gateway-helm-envoy-gateway-role.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/kubeadm:get-nodes.txt",
                                ">f+++++++++ objects/cluster/clusterrole/kubeadm:get-nodes.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/secretgen-controller-cluster-role.txt",
                                ">f+++++++++ objects/cluster/clusterrole/secretgen-controller-cluster-role.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:aggregate-to-admin.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:aggregate-to-admin.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:aggregate-to-edit.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:aggregate-to-edit.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:aggregate-to-view.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:aggregate-to-view.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:auth-delegator.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:auth-delegator.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:basic-user.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:basic-user.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:nodeclient.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:nodeclient.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:selfnodeclient.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:certificatesigningrequests:selfnodeclient.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-approver.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-approver.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-kubelet-approver.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kube-apiserver-client-kubelet-approver.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kubelet-serving-approver.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:kubelet-serving-approver.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:legacy-unknown-approver.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:certificates.k8s.io:legacy-unknown-approver.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:attachdetach-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:attachdetach-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:certificate-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:certificate-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:clusterrole-aggregation-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:clusterrole-aggregation-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:cronjob-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:cronjob-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:daemon-set-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:daemon-set-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:deployment-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:deployment-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:disruption-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:disruption-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:endpoint-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:endpoint-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:endpointslice-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:endpointslice-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:endpointslicemirroring-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:endpointslicemirroring-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:ephemeral-volume-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:ephemeral-volume-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:expand-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:expand-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:generic-garbage-collector.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:generic-garbage-collector.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:horizontal-pod-autoscaler.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:horizontal-pod-autoscaler.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:job-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:job-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:namespace-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:namespace-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:node-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:node-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:persistent-volume-binder.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:persistent-volume-binder.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:pod-garbage-collector.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:pod-garbage-collector.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:pv-protection-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:pv-protection-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:pvc-protection-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:pvc-protection-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:replicaset-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:replicaset-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:replication-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:replication-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:resourcequota-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:resourcequota-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:root-ca-cert-publisher.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:root-ca-cert-publisher.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:route-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:route-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:service-account-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:service-account-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:service-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:service-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:statefulset-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:statefulset-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:ttl-after-finished-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:ttl-after-finished-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:ttl-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:controller:ttl-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:coredns.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:coredns.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:discovery.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:discovery.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:heapster.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:heapster.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-aggregator.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-aggregator.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-controller-manager.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-controller-manager.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-dns.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-dns.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-scheduler.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:kube-scheduler.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:kubelet-api-admin.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:kubelet-api-admin.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:monitoring.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:monitoring.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:node-bootstrapper.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:node-bootstrapper.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:node-problem-detector.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:node-problem-detector.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:node-proxier.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:node-proxier.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:node.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:node.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:persistent-volume-provisioner.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:persistent-volume-provisioner.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:public-info-viewer.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:public-info-viewer.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:service-account-issuer-discovery.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:service-account-issuer-discovery.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/system:volume-scheduler.txt",
                                ">f+++++++++ objects/cluster/clusterrole/system:volume-scheduler.yaml",
                                ">f+++++++++ objects/cluster/clusterrole/view.txt",
                                ">f+++++++++ objects/cluster/clusterrole/view.yaml",
                                "cd+++++++++ objects/cluster/clusterrolebinding/",
                                ">f+++++++++ objects/cluster/clusterrolebinding/cilium-operator.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/cilium-operator.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/cilium.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/cilium.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/cluster-admin.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/cluster-admin.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-certgen:envoy-gateway-system.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-envoy-gateway-rolebinding.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/envoy-gateway-gateway-helm-envoy-gateway-rolebinding.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:get-nodes.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:get-nodes.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:kubelet-bootstrap.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:kubelet-bootstrap.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-bootstrap.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-bootstrap.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-certificate-rotation.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-autoapprove-certificate-rotation.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-proxier.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/kubeadm:node-proxier.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/secretgen-controller-cluster-role-binding.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/secretgen-controller-cluster-role-binding.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:basic-user.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:basic-user.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:attachdetach-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:attachdetach-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:certificate-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:certificate-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:clusterrole-aggregation-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:clusterrole-aggregation-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:cronjob-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:cronjob-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:daemon-set-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:daemon-set-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:deployment-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:deployment-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:disruption-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:disruption-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpoint-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpoint-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslice-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslice-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslicemirroring-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:endpointslicemirroring-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:ephemeral-volume-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:ephemeral-volume-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:expand-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:expand-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:generic-garbage-collector.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:generic-garbage-collector.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:horizontal-pod-autoscaler.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:horizontal-pod-autoscaler.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:job-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:job-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:namespace-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:namespace-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:node-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:node-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:persistent-volume-binder.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:persistent-volume-binder.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:pod-garbage-collector.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:pod-garbage-collector.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:pv-protection-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:pv-protection-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:pvc-protection-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:pvc-protection-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:replicaset-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:replicaset-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:replication-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:replication-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:resourcequota-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:resourcequota-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:root-ca-cert-publisher.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:root-ca-cert-publisher.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:route-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:route-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-account-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-account-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:service-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:statefulset-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:statefulset-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-after-finished-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-after-finished-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-controller.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:controller:ttl-controller.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:coredns.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:coredns.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:discovery.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:discovery.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:kube-controller-manager.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:kube-controller-manager.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:kube-dns.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:kube-dns.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:kube-scheduler.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:kube-scheduler.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:monitoring.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:monitoring.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:node-proxier.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:node-proxier.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:node.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:node.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:public-info-viewer.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:public-info-viewer.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:service-account-issuer-discovery.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:service-account-issuer-discovery.yaml",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:volume-scheduler.txt",
                                ">f+++++++++ objects/cluster/clusterrolebinding/system:volume-scheduler.yaml",
                                "cd+++++++++ objects/cluster/namespace/",
                                ">f+++++++++ objects/cluster/namespace/default.txt",
                                ">f+++++++++ objects/cluster/namespace/default.yaml",
                                ">f+++++++++ objects/cluster/namespace/envoy-gateway-system.txt",
                                ">f+++++++++ objects/cluster/namespace/envoy-gateway-system.yaml",
                                ">f+++++++++ objects/cluster/namespace/kube-node-lease.txt",
                                ">f+++++++++ objects/cluster/namespace/kube-node-lease.yaml",
                                ">f+++++++++ objects/cluster/namespace/kube-public.txt",
                                ">f+++++++++ objects/cluster/namespace/kube-public.yaml",
                                ">f+++++++++ objects/cluster/namespace/kube-system.txt",
                                ">f+++++++++ objects/cluster/namespace/kube-system.yaml",
                                ">f+++++++++ objects/cluster/namespace/secretgen-controller.txt",
                                ">f+++++++++ objects/cluster/namespace/secretgen-controller.yaml",
                                "cd+++++++++ objects/cluster/node/",
                                ">f+++++++++ objects/cluster/node/controller.txt",
                                ">f+++++++++ objects/cluster/node/controller.yaml",
                                "cd+++++++++ objects/namespaced/",
                                "cd+++++++++ objects/namespaced/default/",
                                "cd+++++++++ objects/namespaced/default/configmaps/",
                                ">f+++++++++ objects/namespaced/default/configmaps/kube-root-ca.crt.txt",
                                ">f+++++++++ objects/namespaced/default/configmaps/kube-root-ca.crt.yaml",
                                "cd+++++++++ objects/namespaced/default/endpoints/",
                                ">f+++++++++ objects/namespaced/default/endpoints/kubernetes.txt",
                                ">f+++++++++ objects/namespaced/default/endpoints/kubernetes.yaml",
                                "cd+++++++++ objects/namespaced/default/secrets/",
                                ">f+++++++++ objects/namespaced/default/secrets/test-password.txt",
                                ">f+++++++++ objects/namespaced/default/secrets/test-password.yaml",
                                "cd+++++++++ objects/namespaced/default/serviceaccounts/",
                                ">f+++++++++ objects/namespaced/default/serviceaccounts/default.txt",
                                ">f+++++++++ objects/namespaced/default/serviceaccounts/default.yaml",
                                "cd+++++++++ objects/namespaced/default/services/",
                                ">f+++++++++ objects/namespaced/default/services/kubernetes.txt",
                                ">f+++++++++ objects/namespaced/default/services/kubernetes.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/configmaps/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/envoy-gateway-config.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/envoy-gateway-config.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/kube-root-ca.crt.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/configmaps/kube-root-ca.crt.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/deployment/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/deployment/envoy-gateway.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/deployment/envoy-gateway.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/endpoints/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/endpoints/envoy-gateway.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/endpoints/envoy-gateway.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/pods/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/pods/envoy-gateway-78446f96c9-92qxq.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/pods/envoy-gateway-78446f96c9-92qxq.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-certgen.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-certgen.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-infra-manager.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-infra-manager.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-leader-election-rolebinding.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/rolebindings/envoy-gateway-gateway-helm-leader-election-rolebinding.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/roles/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-certgen.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-certgen.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-infra-manager.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-infra-manager.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-leader-election-role.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/roles/envoy-gateway-gateway-helm-leader-election-role.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/secrets/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-gateway.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-gateway.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-oidc-hmac.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-oidc-hmac.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-rate-limit.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy-rate-limit.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/envoy.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/sh.helm.release.v1.envoy-gateway.v1.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/secrets/sh.helm.release.v1.envoy-gateway.v1.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/default.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/default.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway-gateway-helm-certgen.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway-gateway-helm-certgen.yaml",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/serviceaccounts/envoy-gateway.yaml",
                                "cd+++++++++ objects/namespaced/envoy-gateway-system/services/",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/services/envoy-gateway.txt",
                                ">f+++++++++ objects/namespaced/envoy-gateway-system/services/envoy-gateway.yaml",
                                "cd+++++++++ objects/namespaced/kube-node-lease/",
                                "cd+++++++++ objects/namespaced/kube-node-lease/configmaps/",
                                ">f+++++++++ objects/namespaced/kube-node-lease/configmaps/kube-root-ca.crt.txt",
                                ">f+++++++++ objects/namespaced/kube-node-lease/configmaps/kube-root-ca.crt.yaml",
                                "cd+++++++++ objects/namespaced/kube-node-lease/serviceaccounts/",
                                ">f+++++++++ objects/namespaced/kube-node-lease/serviceaccounts/default.txt",
                                ">f+++++++++ objects/namespaced/kube-node-lease/serviceaccounts/default.yaml",
                                "cd+++++++++ objects/namespaced/kube-public/",
                                "cd+++++++++ objects/namespaced/kube-public/configmaps/",
                                ">f+++++++++ objects/namespaced/kube-public/configmaps/cluster-info.txt",
                                ">f+++++++++ objects/namespaced/kube-public/configmaps/cluster-info.yaml",
                                ">f+++++++++ objects/namespaced/kube-public/configmaps/kube-root-ca.crt.txt",
                                ">f+++++++++ objects/namespaced/kube-public/configmaps/kube-root-ca.crt.yaml",
                                "cd+++++++++ objects/namespaced/kube-public/rolebindings/",
                                ">f+++++++++ objects/namespaced/kube-public/rolebindings/kubeadm:bootstrap-signer-clusterinfo.txt",
                                ">f+++++++++ objects/namespaced/kube-public/rolebindings/kubeadm:bootstrap-signer-clusterinfo.yaml",
                                ">f+++++++++ objects/namespaced/kube-public/rolebindings/system:controller:bootstrap-signer.txt",
                                ">f+++++++++ objects/namespaced/kube-public/rolebindings/system:controller:bootstrap-signer.yaml",
                                "cd+++++++++ objects/namespaced/kube-public/roles/",
                                ">f+++++++++ objects/namespaced/kube-public/roles/kubeadm:bootstrap-signer-clusterinfo.txt",
                                ">f+++++++++ objects/namespaced/kube-public/roles/kubeadm:bootstrap-signer-clusterinfo.yaml",
                                ">f+++++++++ objects/namespaced/kube-public/roles/system:controller:bootstrap-signer.txt",
                                ">f+++++++++ objects/namespaced/kube-public/roles/system:controller:bootstrap-signer.yaml",
                                "cd+++++++++ objects/namespaced/kube-public/serviceaccounts/",
                                ">f+++++++++ objects/namespaced/kube-public/serviceaccounts/default.txt",
                                ">f+++++++++ objects/namespaced/kube-public/serviceaccounts/default.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/",
                                "cd+++++++++ objects/namespaced/kube-system/configmaps/",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/cilium-config.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/cilium-config.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/coredns.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/coredns.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/extension-apiserver-authentication.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/extension-apiserver-authentication.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kube-apiserver-legacy-service-account-token-tracking.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kube-apiserver-legacy-service-account-token-tracking.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kube-proxy.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kube-proxy.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kube-root-ca.crt.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kube-root-ca.crt.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kubeadm-config.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kubeadm-config.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kubelet-config.txt",
                                ">f+++++++++ objects/namespaced/kube-system/configmaps/kubelet-config.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/daemonsets/",
                                ">f+++++++++ objects/namespaced/kube-system/daemonsets/cilium.txt",
                                ">f+++++++++ objects/namespaced/kube-system/daemonsets/cilium.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/daemonsets/kube-proxy.txt",
                                ">f+++++++++ objects/namespaced/kube-system/daemonsets/kube-proxy.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/deployment/",
                                ">f+++++++++ objects/namespaced/kube-system/deployment/cilium-operator.txt",
                                ">f+++++++++ objects/namespaced/kube-system/deployment/cilium-operator.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/deployment/coredns.txt",
                                ">f+++++++++ objects/namespaced/kube-system/deployment/coredns.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/endpoints/",
                                ">f+++++++++ objects/namespaced/kube-system/endpoints/kube-dns.txt",
                                ">f+++++++++ objects/namespaced/kube-system/endpoints/kube-dns.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/pods/",
                                ">f+++++++++ objects/namespaced/kube-system/pods/cilium-operator-7fcd8d6ffd-dc7zq.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/cilium-operator-7fcd8d6ffd-dc7zq.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/cilium-znw4f.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/cilium-znw4f.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/coredns-5dd5756b68-q22nr.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/coredns-5dd5756b68-q22nr.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-5fpm4.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-5fpm4.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-tskbx.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/coredns-77cccfdc44-tskbx.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/etcd-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/etcd-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-apiserver-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-apiserver-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-controller-manager-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-controller-manager-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-proxy-ph9nd.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-proxy-ph9nd.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-scheduler-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-scheduler-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-vip-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/pods/kube-vip-controller.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/rolebindings/",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/cilium-config-agent.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/cilium-config-agent.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kube-proxy.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kube-proxy.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubeadm-certs.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubeadm-certs.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubelet-config.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:kubelet-config.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:nodes-kubeadm-config.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/kubeadm:nodes-kubeadm-config.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system::extension-apiserver-authentication-reader.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system::extension-apiserver-authentication-reader.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-controller-manager.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-controller-manager.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-scheduler.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system::leader-locking-kube-scheduler.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:bootstrap-signer.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:bootstrap-signer.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:cloud-provider.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:cloud-provider.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:token-cleaner.txt",
                                ">f+++++++++ objects/namespaced/kube-system/rolebindings/system:controller:token-cleaner.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/roles/",
                                ">f+++++++++ objects/namespaced/kube-system/roles/cilium-config-agent.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/cilium-config-agent.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/extension-apiserver-authentication-reader.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/extension-apiserver-authentication-reader.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kube-proxy.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kube-proxy.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubeadm-certs.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubeadm-certs.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubelet-config.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kubeadm:kubelet-config.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kubeadm:nodes-kubeadm-config.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/kubeadm:nodes-kubeadm-config.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-controller-manager.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-controller-manager.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-scheduler.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system::leader-locking-kube-scheduler.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system:controller:bootstrap-signer.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system:controller:bootstrap-signer.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system:controller:cloud-provider.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system:controller:cloud-provider.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system:controller:token-cleaner.txt",
                                ">f+++++++++ objects/namespaced/kube-system/roles/system:controller:token-cleaner.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/secrets/",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-k72g1n.txt",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-k72g1n.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-ytt6ru.txt",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/bootstrap-token-ytt6ru.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/kubeadm-certs.txt",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/kubeadm-certs.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/sh.helm.release.v1.cilium.v1.txt",
                                ">f+++++++++ objects/namespaced/kube-system/secrets/sh.helm.release.v1.cilium.v1.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/serviceaccounts/",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/attachdetach-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/attachdetach-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/bootstrap-signer.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/bootstrap-signer.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/certificate-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/certificate-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium-operator.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium-operator.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/cilium.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/clusterrole-aggregation-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/clusterrole-aggregation-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/coredns.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/coredns.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/cronjob-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/cronjob-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/daemon-set-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/daemon-set-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/default.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/default.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/deployment-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/deployment-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/disruption-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/disruption-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpoint-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpoint-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslice-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslice-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslicemirroring-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/endpointslicemirroring-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/ephemeral-volume-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/ephemeral-volume-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/expand-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/expand-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/generic-garbage-collector.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/generic-garbage-collector.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/horizontal-pod-autoscaler.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/horizontal-pod-autoscaler.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/job-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/job-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/kube-proxy.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/kube-proxy.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/namespace-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/namespace-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/node-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/node-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/persistent-volume-binder.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/persistent-volume-binder.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/pod-garbage-collector.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/pod-garbage-collector.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/pv-protection-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/pv-protection-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/pvc-protection-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/pvc-protection-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/replicaset-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/replicaset-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/replication-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/replication-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/resourcequota-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/resourcequota-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/root-ca-cert-publisher.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/root-ca-cert-publisher.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-account-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-account-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/service-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/statefulset-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/statefulset-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/token-cleaner.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/token-cleaner.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-after-finished-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-after-finished-controller.yaml",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-controller.txt",
                                ">f+++++++++ objects/namespaced/kube-system/serviceaccounts/ttl-controller.yaml",
                                "cd+++++++++ objects/namespaced/kube-system/services/",
                                ">f+++++++++ objects/namespaced/kube-system/services/kube-dns.txt",
                                ">f+++++++++ objects/namespaced/kube-system/services/kube-dns.yaml",
                                "cd+++++++++ objects/namespaced/secretgen-controller/",
                                "cd+++++++++ objects/namespaced/secretgen-controller/configmaps/",
                                ">f+++++++++ objects/namespaced/secretgen-controller/configmaps/kube-root-ca.crt.txt",
                                ">f+++++++++ objects/namespaced/secretgen-controller/configmaps/kube-root-ca.crt.yaml",
                                "cd+++++++++ objects/namespaced/secretgen-controller/deployment/",
                                ">f+++++++++ objects/namespaced/secretgen-controller/deployment/secretgen-controller.txt",
                                ">f+++++++++ objects/namespaced/secretgen-controller/deployment/secretgen-controller.yaml",
                                "cd+++++++++ objects/namespaced/secretgen-controller/pods/",
                                ">f+++++++++ objects/namespaced/secretgen-controller/pods/secretgen-controller-ffb97c6dc-j2fvp.txt",
                                ">f+++++++++ objects/namespaced/secretgen-controller/pods/secretgen-controller-ffb97c6dc-j2fvp.yaml",
                                "cd+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/",
                                ">f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/default.txt",
                                ">f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/default.yaml",
                                ">f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/secretgen-controller-sa.txt",
                                ">f+++++++++ objects/namespaced/secretgen-controller/serviceaccounts/secretgen-controller-sa.yaml"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000017",
                        "name": "describe-kubernetes-objects",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/describe-kubernetes-objects"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:41.726785Z",
                            "start": "2026-10-26T23:59:41.059669Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000001d",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:41.997338Z",
                            "start": "2026-10-26T23:59:41.736721Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000021",
                        "name": "creating directory for pod logs"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:42.270378Z",
                            "start": "2026-10-26T23:59:42.001643Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000022",
                        "name": "creating directory for failed pod logs"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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    # only restarted containers have the previous logs\n    PREVIOUS=\"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"${PREVIOUS}\" 2> /dev/null || rm -f \"${PREVIOUS}\"\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:07.645597",
                            "end": "2026-10-26 23:59:50.230845",
                            "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    # only restarted containers have the previous logs\n    PREVIOUS=\"/tmp/logs/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt\"\n    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > \"${PREVIOUS}\" 2> /dev/null || rm -f \"${PREVIOUS}\"\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-6443-29e5-000000000023-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:42.585248",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/envoy-gateway\nkube-system/cilium-operator-7fcd8d6ffd-dc7zq/cilium-operator\nkube-system/cilium-znw4f/config\nkube-system/cilium-znw4f/mount-cgroup\nkube-system/cilium-znw4f/apply-sysctl-overwrites\nkube-system/cilium-znw4f/mount-bpf-fs\nkube-system/cilium-znw4f/clean-cilium-state\nkube-system/cilium-znw4f/install-cni-binaries\nkube-system/cilium-znw4f/cilium-agent\nkube-system/coredns-5dd5756b68-q22nr/coredns\nkube-system/coredns-77cccfdc44-5fpm4/coredns\nkube-system/coredns-77cccfdc44-tskbx/coredns\nkube-system/etcd-controller/etcd\nkube-system/kube-apiserver-controller/kube-apiserver\nkube-system/kube-controller-manager-controller/kube-controller-manager\nkube-system/kube-proxy-ph9nd/kube-proxy\nkube-system/kube-scheduler-controller/kube-scheduler\nkube-system/kube-vip-controller/kube-vip\nsecretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/secretgen-controller",
                            "stdout_lines": [
                                "envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/envoy-gateway",
                                "kube-system/cilium-operator-7fcd8d6ffd-dc7zq/cilium-operator",
                                "kube-system/cilium-znw4f/config",
                                "kube-system/cilium-znw4f/mount-cgroup",
                                "kube-system/cilium-znw4f/apply-sysctl-overwrites",
                                "kube-system/cilium-znw4f/mount-bpf-fs",
                                "kube-system/cilium-znw4f/clean-cilium-state",
                                "kube-system/cilium-znw4f/install-cni-binaries",
                                "kube-system/cilium-znw4f/cilium-agent",
                                "kube-system/coredns-5dd5756b68-q22nr/coredns",
                                "kube-system/coredns-77cccfdc44-5fpm4/coredns",
                                "kube-system/coredns-77cccfdc44-tskbx/coredns",
                                "kube-system/etcd-controller/etcd",
                                "kube-system/kube-apiserver-controller/kube-apiserver",
                                "kube-system/kube-controller-manager-controller/kube-controller-manager",
                                "kube-system/kube-proxy-ph9nd/kube-proxy",
                                "kube-system/kube-scheduler-controller/kube-scheduler",
                                "kube-system/kube-vip-controller/kube-vip",
                                "secretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/secretgen-controller"
                            ],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-000000000023-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:50.339095Z",
                            "start": "2026-10-26T23:59:42.314640Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000023",
                        "name": "retrieve all kubernetes logs, current and previous (if they exist)"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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@162.253.55.113:/tmp/logs/pod-logs /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                            "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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                                    "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@162.253.55.113:/tmp/logs/pod-logs",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ pod-logs/\ncd+++++++++ pod-logs/envoy-gateway-system/\ncd+++++++++ pod-logs/envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/\n>f+++++++++ pod-logs/envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/envoy-gateway.txt\ncd+++++++++ pod-logs/failed-pods/\ncd+++++++++ pod-logs/failed-pods/envoy-gateway-system/\ncd+++++++++ pod-logs/failed-pods/envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/\ncd+++++++++ pod-logs/failed-pods/kube-system/\ncd+++++++++ pod-logs/failed-pods/kube-system/cilium-operator-7fcd8d6ffd-dc7zq/\ncd+++++++++ pod-logs/failed-pods/kube-system/cilium-znw4f/\ncd+++++++++ pod-logs/failed-pods/kube-system/coredns-5dd5756b68-q22nr/\ncd+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-5fpm4/\n>f+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-5fpm4/coredns.txt\ncd+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-tskbx/\n>f+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-tskbx/coredns.txt\ncd+++++++++ pod-logs/failed-pods/kube-system/etcd-controller/\ncd+++++++++ pod-logs/failed-pods/kube-system/kube-apiserver-controller/\ncd+++++++++ pod-logs/failed-pods/kube-system/kube-controller-manager-controller/\ncd+++++++++ pod-logs/failed-pods/kube-system/kube-proxy-ph9nd/\ncd+++++++++ pod-logs/failed-pods/kube-system/kube-scheduler-controller/\ncd+++++++++ pod-logs/failed-pods/kube-system/kube-vip-controller/\ncd+++++++++ pod-logs/failed-pods/secretgen-controller/\ncd+++++++++ pod-logs/failed-pods/secretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/\ncd+++++++++ pod-logs/kube-system/\ncd+++++++++ pod-logs/kube-system/cilium-operator-7fcd8d6ffd-dc7zq/\n>f+++++++++ pod-logs/kube-system/cilium-operator-7fcd8d6ffd-dc7zq/cilium-operator.txt\ncd+++++++++ pod-logs/kube-system/cilium-znw4f/\n>f+++++++++ pod-logs/kube-system/cilium-znw4f/apply-sysctl-overwrites.txt\n>f+++++++++ pod-logs/kube-system/cilium-znw4f/cilium-agent.txt\n>f+++++++++ pod-logs/kube-system/cilium-znw4f/clean-cilium-state.txt\n>f+++++++++ pod-logs/kube-system/cilium-znw4f/config.txt\n>f+++++++++ pod-logs/kube-system/cilium-znw4f/install-cni-binaries.txt\n>f+++++++++ pod-logs/kube-system/cilium-znw4f/mount-bpf-fs.txt\n>f+++++++++ pod-logs/kube-system/cilium-znw4f/mount-cgroup.txt\ncd+++++++++ pod-logs/kube-system/coredns-5dd5756b68-q22nr/\n>f+++++++++ pod-logs/kube-system/coredns-5dd5756b68-q22nr/coredns.txt\ncd+++++++++ pod-logs/kube-system/coredns-77cccfdc44-5fpm4/\n>f+++++++++ pod-logs/kube-system/coredns-77cccfdc44-5fpm4/coredns.txt\ncd+++++++++ pod-logs/kube-system/coredns-77cccfdc44-tskbx/\n>f+++++++++ pod-logs/kube-system/coredns-77cccfdc44-tskbx/coredns.txt\ncd+++++++++ pod-logs/kube-system/etcd-controller/\n>f+++++++++ pod-logs/kube-system/etcd-controller/etcd.txt\ncd+++++++++ pod-logs/kube-system/kube-apiserver-controller/\n>f+++++++++ pod-logs/kube-system/kube-apiserver-controller/kube-apiserver.txt\ncd+++++++++ pod-logs/kube-system/kube-controller-manager-controller/\n>f+++++++++ pod-logs/kube-system/kube-controller-manager-controller/kube-controller-manager.txt\ncd+++++++++ pod-logs/kube-system/kube-proxy-ph9nd/\n>f+++++++++ pod-logs/kube-system/kube-proxy-ph9nd/kube-proxy.txt\ncd+++++++++ pod-logs/kube-system/kube-scheduler-controller/\n>f+++++++++ pod-logs/kube-system/kube-scheduler-controller/kube-scheduler.txt\ncd+++++++++ pod-logs/kube-system/kube-vip-controller/\n>f+++++++++ pod-logs/kube-system/kube-vip-controller/kube-vip.txt\ncd+++++++++ pod-logs/secretgen-controller/\ncd+++++++++ pod-logs/secretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/\n>f+++++++++ pod-logs/secretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/secretgen-controller.txt\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ pod-logs/",
                                "cd+++++++++ pod-logs/envoy-gateway-system/",
                                "cd+++++++++ pod-logs/envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/",
                                ">f+++++++++ pod-logs/envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/envoy-gateway.txt",
                                "cd+++++++++ pod-logs/failed-pods/",
                                "cd+++++++++ pod-logs/failed-pods/envoy-gateway-system/",
                                "cd+++++++++ pod-logs/failed-pods/envoy-gateway-system/envoy-gateway-78446f96c9-92qxq/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/cilium-operator-7fcd8d6ffd-dc7zq/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/cilium-znw4f/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/coredns-5dd5756b68-q22nr/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-5fpm4/",
                                ">f+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-5fpm4/coredns.txt",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-tskbx/",
                                ">f+++++++++ pod-logs/failed-pods/kube-system/coredns-77cccfdc44-tskbx/coredns.txt",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/etcd-controller/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/kube-apiserver-controller/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/kube-controller-manager-controller/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/kube-proxy-ph9nd/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/kube-scheduler-controller/",
                                "cd+++++++++ pod-logs/failed-pods/kube-system/kube-vip-controller/",
                                "cd+++++++++ pod-logs/failed-pods/secretgen-controller/",
                                "cd+++++++++ pod-logs/failed-pods/secretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/",
                                "cd+++++++++ pod-logs/kube-system/",
                                "cd+++++++++ pod-logs/kube-system/cilium-operator-7fcd8d6ffd-dc7zq/",
                                ">f+++++++++ pod-logs/kube-system/cilium-operator-7fcd8d6ffd-dc7zq/cilium-operator.txt",
                                "cd+++++++++ pod-logs/kube-system/cilium-znw4f/",
                                ">f+++++++++ pod-logs/kube-system/cilium-znw4f/apply-sysctl-overwrites.txt",
                                ">f+++++++++ pod-logs/kube-system/cilium-znw4f/cilium-agent.txt",
                                ">f+++++++++ pod-logs/kube-system/cilium-znw4f/clean-cilium-state.txt",
                                ">f+++++++++ pod-logs/kube-system/cilium-znw4f/config.txt",
                                ">f+++++++++ pod-logs/kube-system/cilium-znw4f/install-cni-binaries.txt",
                                ">f+++++++++ pod-logs/kube-system/cilium-znw4f/mount-bpf-fs.txt",
                                ">f+++++++++ pod-logs/kube-system/cilium-znw4f/mount-cgroup.txt",
                                "cd+++++++++ pod-logs/kube-system/coredns-5dd5756b68-q22nr/",
                                ">f+++++++++ pod-logs/kube-system/coredns-5dd5756b68-q22nr/coredns.txt",
                                "cd+++++++++ pod-logs/kube-system/coredns-77cccfdc44-5fpm4/",
                                ">f+++++++++ pod-logs/kube-system/coredns-77cccfdc44-5fpm4/coredns.txt",
                                "cd+++++++++ pod-logs/kube-system/coredns-77cccfdc44-tskbx/",
                                ">f+++++++++ pod-logs/kube-system/coredns-77cccfdc44-tskbx/coredns.txt",
                                "cd+++++++++ pod-logs/kube-system/etcd-controller/",
                                ">f+++++++++ pod-logs/kube-system/etcd-controller/etcd.txt",
                                "cd+++++++++ pod-logs/kube-system/kube-apiserver-controller/",
                                ">f+++++++++ pod-logs/kube-system/kube-apiserver-controller/kube-apiserver.txt",
                                "cd+++++++++ pod-logs/kube-system/kube-controller-manager-controller/",
                                ">f+++++++++ pod-logs/kube-system/kube-controller-manager-controller/kube-controller-manager.txt",
                                "cd+++++++++ pod-logs/kube-system/kube-proxy-ph9nd/",
                                ">f+++++++++ pod-logs/kube-system/kube-proxy-ph9nd/kube-proxy.txt",
                                "cd+++++++++ pod-logs/kube-system/kube-scheduler-controller/",
                                ">f+++++++++ pod-logs/kube-system/kube-scheduler-controller/kube-scheduler.txt",
                                "cd+++++++++ pod-logs/kube-system/kube-vip-controller/",
                                ">f+++++++++ pod-logs/kube-system/kube-vip-controller/kube-vip.txt",
                                "cd+++++++++ pod-logs/secretgen-controller/",
                                "cd+++++++++ pod-logs/secretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/",
                                ">f+++++++++ pod-logs/secretgen-controller/secretgen-controller-ffb97c6dc-j2fvp/secretgen-controller.txt"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-00000000001f",
                        "name": "gather-pod-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-pod-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:50.897366Z",
                            "start": "2026-10-26T23:59:50.349960Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000024",
                        "name": "Downloads pod logs to executor"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:51.169106Z",
                            "start": "2026-10-26T23:59:50.918310Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000028",
                        "name": "creating directory for helm release descriptions"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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:01.017384",
                            "end": "2026-10-26 23:59:52.503862",
                            "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-6443-29e5-000000000029-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:51.486478",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Scraping envoy-gateway.envoy-gateway-system:19001/metrics:\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n\r  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: envoy-gateway.envoy-gateway-system\nScraping kube-dns.kube-system:9153/metrics:\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n\r  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: kube-dns.kube-system",
                            "stdout_lines": [
                                "Scraping envoy-gateway.envoy-gateway-system:19001/metrics:",
                                "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current",
                                "                                 Dload  Upload   Total   Spent    Left  Speed",
                                "",
                                "  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: envoy-gateway.envoy-gateway-system",
                                "Scraping kube-dns.kube-system:9153/metrics:",
                                "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current",
                                "                                 Dload  Upload   Total   Spent    Left  Speed",
                                "",
                                "  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: kube-dns.kube-system"
                            ],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-000000000029-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:52.734021Z",
                            "start": "2026-10-26T23:59:51.214536Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000029",
                        "name": "Get metrics from exporter services in all namespaces"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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.116561",
                            "end": "2026-10-26 23:59:53.170937",
                            "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-6443-29e5-00000000002a-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:53.054376",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ceph-mgr endpoints: ",
                            "stdout_lines": [
                                "ceph-mgr endpoints: "
                            ],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-00000000002a-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:53.299532Z",
                            "start": "2026-10-26T23:59:52.782080Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000002a",
                        "name": "Get ceph metrics from ceph-mgr"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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.108513",
                            "end": "2026-10-26 23:59:53.725771",
                            "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-6443-29e5-00000000002b-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-26 23:59:53.617258",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0010-6443-29e5-00000000002b-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:53.862233Z",
                            "start": "2026-10-26T23:59:53.345106Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000002b",
                        "name": "Get metrics from fluentd pods"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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@162.253.55.113:/tmp/logs/prometheus /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                            "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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                                    "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@162.253.55.113:/tmp/logs/prometheus",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ prometheus/\n>f+++++++++ prometheus/envoy-gateway-system-envoy-gateway.txt\n>f+++++++++ prometheus/kube-system-kube-dns.txt\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ prometheus/",
                                ">f+++++++++ prometheus/envoy-gateway-system-envoy-gateway.txt",
                                ">f+++++++++ prometheus/kube-system-kube-dns.txt"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-000000000026",
                        "name": "gather-prom-metrics",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-prom-metrics"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:54.448105Z",
                            "start": "2026-10-26T23:59:53.926532Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-00000000002c",
                        "name": "Downloads logs to executor"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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-6443-29e5-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:54.758096Z",
                            "start": "2026-10-26T23:59:54.467309Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000030",
                        "name": "creating directory for helm release descriptions"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -x\ncp /tmp/artifacts/* /tmp/logs/selenium/.",
                            "delta": "0:00:00.011985",
                            "end": "2026-10-26 23:59:55.107425",
                            "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-6443-29e5-000000000031-1-controller",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-10-26 23:59:55.095440",
                            "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-6443-29e5-000000000031-1-controller"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-6443-29e5-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:55.319108Z",
                            "start": "2026-10-26T23:59:54.801303Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000031",
                        "name": "Get selenium data"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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@162.253.55.113:/tmp/logs/selenium /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                            "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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/controller",
                                    "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@162.253.55.113:/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-6443-29e5-00000000002e",
                        "name": "gather-selenium-data",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/untrusted/project_4/opendev.org/openstack/openstack-helm/roles/gather-selenium-data"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:55.945488Z",
                            "start": "2026-10-26T23:59:55.330184Z"
                        },
                        "id": "0242ac17-0010-6443-29e5-000000000032",
                        "name": "Downloads logs to executor"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "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-10-27T00:00:00.103577Z",
                    "start": "2026-10-26T23:59:56.721785Z"
                },
                "id": "0242ac17-0010-fe55-dfbc-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-fe55-dfbc-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:56.798018Z",
                            "start": "2026-10-26T23:59:56.732602Z"
                        },
                        "id": "0242ac17-0010-fe55-dfbc-000000000008",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-fe55-dfbc-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:56.855210Z",
                            "start": "2026-10-26T23:59:56.807666Z"
                        },
                        "id": "0242ac17-0010-fe55-dfbc-000000000009",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-fe55-dfbc-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:57.736641Z",
                            "start": "2026-10-26T23:59:56.866707Z"
                        },
                        "id": "0242ac17-0010-fe55-dfbc-00000000000a",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "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@162.253.55.113:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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@162.253.55.113:/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/0a93bb11d6c64d9fadaf9939cd1bb104/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@162.253.55.113:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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@162.253.55.113:/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/0a93bb11d6c64d9fadaf9939cd1bb104/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@162.253.55.113:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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@162.253.55.113:/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-fe55-dfbc-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-26T23:59:59.407115Z",
                            "start": "2026-10-26T23:59:57.748142Z"
                        },
                        "id": "0242ac17-0010-fe55-dfbc-00000000000c",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "controller": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/artifacts/* /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.007164",
                                    "end": "2026-10-26 23:59:59.842717",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/artifacts/* /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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-10-26 23:59:59.835553",
                                    "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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/docs/* /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.007412",
                                    "end": "2026-10-27 00:00:00.063545",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/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/0a93bb11d6c64d9fadaf9939cd1bb104/work/docs/* /var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/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-10-27 00:00:00.056133",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0010-fe55-dfbc-00000000000f",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-27T00:00:00.103577Z",
                            "start": "2026-10-26T23:59:59.426237Z"
                        },
                        "id": "0242ac17-0010-fe55-dfbc-000000000011",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-10-27T00:00:00.673771Z",
                    "start": "2026-10-27T00:00:00.118693Z"
                },
                "id": "0242ac17-0010-fe55-dfbc-000000000013",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "controller": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxkblbHmKzNJXJIAs5UN6EmvsAXhrMBzW+vmSuSDWemF34dsHPThnW5Cz4OEIgQn3QCSNtVULv2+XqOM0LPqRXMElOPXnLU9RIemqIpR4IwkR8QtsraBKd6/ofXWkaZ6JjldJRcvQpBLqVnoSLTZasOPnYBNmQ9/RqanzmfyyVsAOpOjdCuq5bj3iS8zAUDLhl1xn59c2mZGDnmaIS4pOksEmefCUc4CM/icnRQO/ZXtFA5McnNPTAMd9O1ihVHlyJDsJbPzxJua/4uACnQ3bz8WDLvODbQi3RMGbKK8C5JBhtNdtoGmVXQDa2hwzkwKDiiYjq+gB2byawD0+I/brP0WjnI1BAsYZUDNvPS4vPYDf6IbcG3vWdR7cdx6Dknb1mkG6D0Wn4I50S9ENj8XygLMdBR3N1fUqNxEnVG6Q/jNdkCYO4hKRRCwi7Euc0kx/uFSTkRELhvHebZoKmpZpfTNFksPEUZS/E2XgT1O8+p5i0PhO3IQqHCRF6iJcu248= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCxkblbHmKzNJXJIAs5UN6EmvsAXhrMBzW+vmSuSDWemF34dsHPThnW5Cz4OEIgQn3QCSNtVULv2+XqOM0LPqRXMElOPXnLU9RIemqIpR4IwkR8QtsraBKd6/ofXWkaZ6JjldJRcvQpBLqVnoSLTZasOPnYBNmQ9/RqanzmfyyVsAOpOjdCuq5bj3iS8zAUDLhl1xn59c2mZGDnmaIS4pOksEmefCUc4CM/icnRQO/ZXtFA5McnNPTAMd9O1ihVHlyJDsJbPzxJua/4uACnQ3bz8WDLvODbQi3RMGbKK8C5JBhtNdtoGmVXQDa2hwzkwKDiiYjq+gB2byawD0+I/brP0WjnI1BAsYZUDNvPS4vPYDf6IbcG3vWdR7cdx6Dknb1mkG6D0Wn4I50S9ENj8XygLMdBR3N1fUqNxEnVG6Q/jNdkCYO4hKRRCwi7Euc0kx/uFSTkRELhvHebZoKmpZpfTNFksPEUZS/E2XgT1O8+p5i0PhO3IQqHCRF6iJcu248= 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-fe55-dfbc-000000000016",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/0a93bb11d6c64d9fadaf9939cd1bb104/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-27T00:00:00.673771Z",
                            "start": "2026-10-27T00:00:00.131923Z"
                        },
                        "id": "0242ac17-0010-fe55-dfbc-000000000018",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "controller": {
            "changed": 4,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
