all: children: computes: hosts: compute-0: null ocps: hosts: crc: null zuul_unreachable: hosts: {} hosts: compute-0: ansible_connection: ssh ansible_host: 38.102.83.150 ansible_port: 22 ansible_python_interpreter: auto ansible_user: zuul ca_cert_approver: true cifmw_artifacts_crc_sshkey: ~/.ssh/id_cifw cifmw_dlrn_report_result: false cifmw_extras: - '@scenarios/centos-9/multinode-ci.yml' - '@scenarios/centos-9/horizon.yml' cifmw_openshift_api: api.crc.testing:6443 cifmw_openshift_kubeconfig: '{{ ansible_user_dir }}/.crc/machines/crc/kubeconfig' cifmw_openshift_password: '12**********89' cifmw_openshift_skip_tls_verify: true cifmw_openshift_user: kubeadmin cifmw_operator_build_output: operators: infra-operator: git_commit_hash: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 git_src_dir: /home/zuul/src/github.com/openstack-k8s-operators/infra-operator image: 38.102.83.107:5001/openstack-k8s-operators/infra-operator:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-bundle:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-index:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 openstack-operator: git_commit_hash: 721c3f7c64850716e5de5f4e76e1ef4c36c28652 git_src_dir: ~/src/github.com/openstack-k8s-operators/openstack-operator image: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-bundle:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-index:721c3f7c64850716e5de5f4e76e1ef4c36c28652 cifmw_use_libvirt: false cifmw_zuul_target_host: controller content_provider_registry_available: true content_provider_registry_ip: 38.102.83.107 content_provider_registry_ip_port: 38.102.83.107:5001 crc_ci_bootstrap_cloud_name: '{{ nodepool.cloud | replace(''-nodepool-tripleo'','''') }}' crc_ci_bootstrap_networking: instances: compute-0: networks: default: ip: 192.168.122.100 internal-api: config_nm: false ip: 172.17.0.100 storage: config_nm: false ip: 172.18.0.100 tenant: config_nm: false ip: 172.19.0.100 controller: networks: default: ip: 192.168.122.11 crc: networks: default: ip: 192.168.122.10 internal-api: ip: 172.17.0.5 storage: ip: 172.18.0.5 tenant: ip: 172.19.0.5 networks: default: mtu: '{{ (''ibm'' in nodepool.cloud) | ternary(''1440'', ''1500'') }}' range: 192.168.122.0/24 router_net: '' transparent: true internal-api: range: 172.17.0.0/24 vlan: 20 storage: range: 172.18.0.0/24 vlan: 21 tenant: range: 172.19.0.0/24 vlan: 22 enable_ramdisk: true max_retries: 60 nodepool: az: nova cloud: vexxhost-nodepool-tripleo external_id: 6d6e4266-8a44-4a46-b247-67ffb048ef26 host_id: bdb78bf25a270582fae0ca49d447ffffc4c7a50a772a0a4c0593588a interface_ip: 38.102.83.150 label: cloud-centos-9-stream-tripleo node_properties: {} private_ipv4: 38.102.83.150 private_ipv6: null provider: vexxhost-nodepool-tripleo public_ipv4: 38.102.83.150 public_ipv6: '' region: RegionOne slot: null push_registry: quay.rdoproject.org quay_login_secret_name: quay_nextgen_zuulgithubci registry_login_enabled: true retry_delay: 15 zuul_log_collection: true zuul_node: az: nova cloud: vexxhost-nodepool-tripleo external_id: 6d6e4266-8a44-4a46-b247-67ffb048ef26 host_id: bdb78bf25a270582fae0ca49d447ffffc4c7a50a772a0a4c0593588a interface_ip: 38.102.83.150 label: cloud-centos-9-stream-tripleo node_properties: {} private_ipv4: 38.102.83.150 private_ipv6: null provider: vexxhost-nodepool-tripleo public_ipv4: 38.102.83.150 public_ipv6: '' region: RegionOne slot: null uuid: null controller: ansible_connection: ssh ansible_host: 38.102.83.151 ansible_port: 22 ansible_python_interpreter: auto ansible_user: zuul ca_cert_approver: true cifmw_artifacts_crc_sshkey: ~/.ssh/id_cifw cifmw_dlrn_report_result: false cifmw_extras: - '@scenarios/centos-9/multinode-ci.yml' - '@scenarios/centos-9/horizon.yml' cifmw_openshift_api: api.crc.testing:6443 cifmw_openshift_kubeconfig: '{{ ansible_user_dir }}/.crc/machines/crc/kubeconfig' cifmw_openshift_password: '12**********89' cifmw_openshift_skip_tls_verify: true cifmw_openshift_user: kubeadmin cifmw_operator_build_output: operators: infra-operator: git_commit_hash: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 git_src_dir: /home/zuul/src/github.com/openstack-k8s-operators/infra-operator image: 38.102.83.107:5001/openstack-k8s-operators/infra-operator:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-bundle:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-index:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 openstack-operator: git_commit_hash: 721c3f7c64850716e5de5f4e76e1ef4c36c28652 git_src_dir: ~/src/github.com/openstack-k8s-operators/openstack-operator image: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-bundle:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-index:721c3f7c64850716e5de5f4e76e1ef4c36c28652 cifmw_use_libvirt: false cifmw_zuul_target_host: controller content_provider_registry_available: true content_provider_registry_ip: 38.102.83.107 content_provider_registry_ip_port: 38.102.83.107:5001 crc_ci_bootstrap_cloud_name: '{{ nodepool.cloud | replace(''-nodepool-tripleo'','''') }}' crc_ci_bootstrap_networking: instances: compute-0: networks: default: ip: 192.168.122.100 internal-api: config_nm: false ip: 172.17.0.100 storage: config_nm: false ip: 172.18.0.100 tenant: config_nm: false ip: 172.19.0.100 controller: networks: default: ip: 192.168.122.11 crc: networks: default: ip: 192.168.122.10 internal-api: ip: 172.17.0.5 storage: ip: 172.18.0.5 tenant: ip: 172.19.0.5 networks: default: mtu: '{{ (''ibm'' in nodepool.cloud) | ternary(''1440'', ''1500'') }}' range: 192.168.122.0/24 router_net: '' transparent: true internal-api: range: 172.17.0.0/24 vlan: 20 storage: range: 172.18.0.0/24 vlan: 21 tenant: range: 172.19.0.0/24 vlan: 22 enable_ramdisk: true max_retries: 60 nodepool: az: nova cloud: vexxhost-nodepool-tripleo external_id: 4667c6b5-cf9e-4188-b09a-f99e5132aa45 host_id: bdb78bf25a270582fae0ca49d447ffffc4c7a50a772a0a4c0593588a interface_ip: 38.102.83.151 label: cloud-centos-9-stream-tripleo-medium node_properties: {} private_ipv4: 38.102.83.151 private_ipv6: null provider: vexxhost-nodepool-tripleo public_ipv4: 38.102.83.151 public_ipv6: '' region: RegionOne slot: null push_registry: quay.rdoproject.org quay_login_secret_name: quay_nextgen_zuulgithubci registry_login_enabled: true retry_delay: 15 zuul_log_collection: true zuul_node: az: nova cloud: vexxhost-nodepool-tripleo external_id: 4667c6b5-cf9e-4188-b09a-f99e5132aa45 host_id: bdb78bf25a270582fae0ca49d447ffffc4c7a50a772a0a4c0593588a interface_ip: 38.102.83.151 label: cloud-centos-9-stream-tripleo-medium node_properties: {} private_ipv4: 38.102.83.151 private_ipv6: null provider: vexxhost-nodepool-tripleo public_ipv4: 38.102.83.151 public_ipv6: '' region: RegionOne slot: null uuid: null crc: ansible_connection: ssh ansible_host: 38.102.83.110 ansible_port: 22 ansible_python_interpreter: auto ansible_user: core ca_cert_approver: true cifmw_artifacts_crc_sshkey: ~/.ssh/id_cifw cifmw_dlrn_report_result: false cifmw_extras: - '@scenarios/centos-9/multinode-ci.yml' - '@scenarios/centos-9/horizon.yml' cifmw_openshift_api: api.crc.testing:6443 cifmw_openshift_kubeconfig: '{{ ansible_user_dir }}/.crc/machines/crc/kubeconfig' cifmw_openshift_password: '12**********89' cifmw_openshift_skip_tls_verify: true cifmw_openshift_user: kubeadmin cifmw_operator_build_output: operators: infra-operator: git_commit_hash: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 git_src_dir: /home/zuul/src/github.com/openstack-k8s-operators/infra-operator image: 38.102.83.107:5001/openstack-k8s-operators/infra-operator:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-bundle:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-index:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 openstack-operator: git_commit_hash: 721c3f7c64850716e5de5f4e76e1ef4c36c28652 git_src_dir: ~/src/github.com/openstack-k8s-operators/openstack-operator image: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-bundle:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-index:721c3f7c64850716e5de5f4e76e1ef4c36c28652 cifmw_use_libvirt: false cifmw_zuul_target_host: controller content_provider_registry_available: true content_provider_registry_ip: 38.102.83.107 content_provider_registry_ip_port: 38.102.83.107:5001 crc_ci_bootstrap_cloud_name: '{{ nodepool.cloud | replace(''-nodepool-tripleo'','''') }}' crc_ci_bootstrap_networking: instances: compute-0: networks: default: ip: 192.168.122.100 internal-api: config_nm: false ip: 172.17.0.100 storage: config_nm: false ip: 172.18.0.100 tenant: config_nm: false ip: 172.19.0.100 controller: networks: default: ip: 192.168.122.11 crc: networks: default: ip: 192.168.122.10 internal-api: ip: 172.17.0.5 storage: ip: 172.18.0.5 tenant: ip: 172.19.0.5 networks: default: mtu: '{{ (''ibm'' in nodepool.cloud) | ternary(''1440'', ''1500'') }}' range: 192.168.122.0/24 router_net: '' transparent: true internal-api: range: 172.17.0.0/24 vlan: 20 storage: range: 172.18.0.0/24 vlan: 21 tenant: range: 172.19.0.0/24 vlan: 22 enable_ramdisk: true max_retries: 60 nodepool: az: nova cloud: vexxhost-nodepool-tripleo external_id: 6c2e8cbe-17dd-4201-97f8-bc4b084c003d host_id: bdb78bf25a270582fae0ca49d447ffffc4c7a50a772a0a4c0593588a interface_ip: 38.102.83.110 label: crc-cloud-ocp-4-20-1-3xl node_properties: {} private_ipv4: 38.102.83.110 private_ipv6: null provider: vexxhost-nodepool-tripleo public_ipv4: 38.102.83.110 public_ipv6: '' region: RegionOne slot: null push_registry: quay.rdoproject.org quay_login_secret_name: quay_nextgen_zuulgithubci registry_login_enabled: true retry_delay: 15 zuul_log_collection: true zuul_node: az: nova cloud: vexxhost-nodepool-tripleo external_id: 6c2e8cbe-17dd-4201-97f8-bc4b084c003d host_id: bdb78bf25a270582fae0ca49d447ffffc4c7a50a772a0a4c0593588a interface_ip: 38.102.83.110 label: crc-cloud-ocp-4-20-1-3xl node_properties: {} private_ipv4: 38.102.83.110 private_ipv6: null provider: vexxhost-nodepool-tripleo public_ipv4: 38.102.83.110 public_ipv6: '' region: RegionOne slot: null uuid: null localhost: ansible_connection: local vars: ca_cert_approver: true cifmw_artifacts_crc_sshkey: ~/.ssh/id_cifw cifmw_dlrn_report_result: false cifmw_extras: - '@scenarios/centos-9/multinode-ci.yml' - '@scenarios/centos-9/horizon.yml' cifmw_openshift_api: api.crc.testing:6443 cifmw_openshift_kubeconfig: '{{ ansible_user_dir }}/.crc/machines/crc/kubeconfig' cifmw_openshift_password: '12**********89' cifmw_openshift_skip_tls_verify: true cifmw_openshift_user: kubeadmin cifmw_operator_build_output: operators: infra-operator: git_commit_hash: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 git_src_dir: /home/zuul/src/github.com/openstack-k8s-operators/infra-operator image: 38.102.83.107:5001/openstack-k8s-operators/infra-operator:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-bundle:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/infra-operator-index:400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 openstack-operator: git_commit_hash: 721c3f7c64850716e5de5f4e76e1ef4c36c28652 git_src_dir: ~/src/github.com/openstack-k8s-operators/openstack-operator image: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_bundle: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-bundle:721c3f7c64850716e5de5f4e76e1ef4c36c28652 image_catalog: 38.102.83.107:5001/openstack-k8s-operators/openstack-operator-index:721c3f7c64850716e5de5f4e76e1ef4c36c28652 cifmw_use_libvirt: false cifmw_zuul_target_host: controller content_provider_registry_available: true content_provider_registry_ip: 38.102.83.107 content_provider_registry_ip_port: 38.102.83.107:5001 crc_ci_bootstrap_cloud_name: '{{ nodepool.cloud | replace(''-nodepool-tripleo'','''') }}' crc_ci_bootstrap_networking: instances: compute-0: networks: default: ip: 192.168.122.100 internal-api: config_nm: false ip: 172.17.0.100 storage: config_nm: false ip: 172.18.0.100 tenant: config_nm: false ip: 172.19.0.100 controller: networks: default: ip: 192.168.122.11 crc: networks: default: ip: 192.168.122.10 internal-api: ip: 172.17.0.5 storage: ip: 172.18.0.5 tenant: ip: 172.19.0.5 networks: default: mtu: '{{ (''ibm'' in nodepool.cloud) | ternary(''1440'', ''1500'') }}' range: 192.168.122.0/24 router_net: '' transparent: true internal-api: range: 172.17.0.0/24 vlan: 20 storage: range: 172.18.0.0/24 vlan: 21 tenant: range: 172.19.0.0/24 vlan: 22 enable_ramdisk: true max_retries: 60 push_registry: quay.rdoproject.org quay_login_secret_name: quay_nextgen_zuulgithubci registry_login_enabled: true retry_delay: 15 zuul: _inheritance_path: - '' - '' - '' - '' - '' - '' ansible_version: '9' attempts: 1 branch: main build: d4db5644809b42929ba2446cfe99a813 build_refs: - branch: main change: '596' change_message: "Final InstanceHA cleanup and small fixes\n\nThis PR consists of three commits:\r\n\r\n**Commit 1: Lazy-import novaclient and keystoneauth1 SDK modules**\r\n\r\nMove novaclient and keystoneauth1 imports from module level into the functions that use them (nova_login, _server_evacuate, _handle_nova_exception, main). \r\nEliminates ~135 lines of mock exception boilerplate across 4 test files. \r\nAdd shared patch_pipeline() fixture in conftest.py replacing 7-deep nested patch blocks in process_service tests. \r\nBind conftest sys.modules submodule mocks to parent mock attributes so lazy imports and patch() targets resolve to the same objects.\r\n\r\n**Commit 2: Remove dead code and consolidate redundant patterns**\r\n\r\nRemove MigrationStatus enum (inline strings), dead _previous_hash state, unreachable VALIDATION_PATTERNS entries, unused _check_critical_services params, redundant validate_input in _host_fence, single-use _cleanup_dict_by_condition helper, and redundant requests.exceptions import. \r\nConsolidate 5 manual error+traceback log pairs into _safe_log_exception calls. \r\nDeduplicate _get_nova_connection by delegating to _establish_nova_connection.\r\n\r\n**Commit 3: Fix fail-open startup, fencing decision log, and document safety model**\r\n\r\nInitialize k8s_api_reachable=True (fail-open) to prevent startup deadlock where fencing was silently blocked until the background health check thread completed its first probe. \r\nInitialize K8S_API_REACHABLE Prometheus gauge to 1 to match. \r\nEmit fencing decision log line before early return so cliff-detection and all-heartbeat-alive cases are logged. \r\nWarn at startup when CHECK_HEARTBEAT is disabled. \r\nAdd Fencing Safety Model section to architecture doc covering gate chain, fail-open/fail-closed semantics, startup race window trade-off, and MedIK8s/InstanceHA responsibility boundary.\r\n" change_url: https://github.com/openstack-k8s-operators/infra-operator/pull/596 commit_id: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 patchset: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 project: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/infra-operator name: openstack-k8s-operators/infra-operator short_name: infra-operator src_dir: src/github.com/openstack-k8s-operators/infra-operator src_dir: src/github.com/openstack-k8s-operators/infra-operator topic: null buildset: 2c8d38947fa34b7791221a65df9016c6 buildset_refs: - branch: main change: '596' change_message: "Final InstanceHA cleanup and small fixes\n\nThis PR consists of three commits:\r\n\r\n**Commit 1: Lazy-import novaclient and keystoneauth1 SDK modules**\r\n\r\nMove novaclient and keystoneauth1 imports from module level into the functions that use them (nova_login, _server_evacuate, _handle_nova_exception, main). \r\nEliminates ~135 lines of mock exception boilerplate across 4 test files. \r\nAdd shared patch_pipeline() fixture in conftest.py replacing 7-deep nested patch blocks in process_service tests. \r\nBind conftest sys.modules submodule mocks to parent mock attributes so lazy imports and patch() targets resolve to the same objects.\r\n\r\n**Commit 2: Remove dead code and consolidate redundant patterns**\r\n\r\nRemove MigrationStatus enum (inline strings), dead _previous_hash state, unreachable VALIDATION_PATTERNS entries, unused _check_critical_services params, redundant validate_input in _host_fence, single-use _cleanup_dict_by_condition helper, and redundant requests.exceptions import. \r\nConsolidate 5 manual error+traceback log pairs into _safe_log_exception calls. \r\nDeduplicate _get_nova_connection by delegating to _establish_nova_connection.\r\n\r\n**Commit 3: Fix fail-open startup, fencing decision log, and document safety model**\r\n\r\nInitialize k8s_api_reachable=True (fail-open) to prevent startup deadlock where fencing was silently blocked until the background health check thread completed its first probe. \r\nInitialize K8S_API_REACHABLE Prometheus gauge to 1 to match. \r\nEmit fencing decision log line before early return so cliff-detection and all-heartbeat-alive cases are logged. \r\nWarn at startup when CHECK_HEARTBEAT is disabled. \r\nAdd Fencing Safety Model section to architecture doc covering gate chain, fail-open/fail-closed semantics, startup race window trade-off, and MedIK8s/InstanceHA responsibility boundary.\r\n" change_url: https://github.com/openstack-k8s-operators/infra-operator/pull/596 commit_id: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 patchset: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 project: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/infra-operator name: openstack-k8s-operators/infra-operator short_name: infra-operator src_dir: src/github.com/openstack-k8s-operators/infra-operator src_dir: src/github.com/openstack-k8s-operators/infra-operator topic: null change: '596' change_message: "Final InstanceHA cleanup and small fixes\n\nThis PR consists of three commits:\r\n\r\n**Commit 1: Lazy-import novaclient and keystoneauth1 SDK modules**\r\n\r\nMove novaclient and keystoneauth1 imports from module level into the functions that use them (nova_login, _server_evacuate, _handle_nova_exception, main). \r\nEliminates ~135 lines of mock exception boilerplate across 4 test files. \r\nAdd shared patch_pipeline() fixture in conftest.py replacing 7-deep nested patch blocks in process_service tests. \r\nBind conftest sys.modules submodule mocks to parent mock attributes so lazy imports and patch() targets resolve to the same objects.\r\n\r\n**Commit 2: Remove dead code and consolidate redundant patterns**\r\n\r\nRemove MigrationStatus enum (inline strings), dead _previous_hash state, unreachable VALIDATION_PATTERNS entries, unused _check_critical_services params, redundant validate_input in _host_fence, single-use _cleanup_dict_by_condition helper, and redundant requests.exceptions import. \r\nConsolidate 5 manual error+traceback log pairs into _safe_log_exception calls. \r\nDeduplicate _get_nova_connection by delegating to _establish_nova_connection.\r\n\r\n**Commit 3: Fix fail-open startup, fencing decision log, and document safety model**\r\n\r\nInitialize k8s_api_reachable=True (fail-open) to prevent startup deadlock where fencing was silently blocked until the background health check thread completed its first probe. \r\nInitialize K8S_API_REACHABLE Prometheus gauge to 1 to match. \r\nEmit fencing decision log line before early return so cliff-detection and all-heartbeat-alive cases are logged. \r\nWarn at startup when CHECK_HEARTBEAT is disabled. \r\nAdd Fencing Safety Model section to architecture doc covering gate chain, fail-open/fail-closed semantics, startup race window trade-off, and MedIK8s/InstanceHA responsibility boundary.\r\n" change_url: https://github.com/openstack-k8s-operators/infra-operator/pull/596 child_jobs: [] commit_id: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 event_id: f85b9530-6349-11f1-8ef9-f881325761c5 executor: hostname: 38.102.83.51 inventory_file: /var/lib/zuul/builds/d4db5644809b42929ba2446cfe99a813/ansible/inventory.yaml log_root: /var/lib/zuul/builds/d4db5644809b42929ba2446cfe99a813/work/logs result_data_file: /var/lib/zuul/builds/d4db5644809b42929ba2446cfe99a813/work/results.json src_root: /var/lib/zuul/builds/d4db5644809b42929ba2446cfe99a813/work/src work_root: /var/lib/zuul/builds/d4db5644809b42929ba2446cfe99a813/work include_vars: [] items: - branch: main change: '596' change_message: "Final InstanceHA cleanup and small fixes\n\nThis PR consists of three commits:\r\n\r\n**Commit 1: Lazy-import novaclient and keystoneauth1 SDK modules**\r\n\r\nMove novaclient and keystoneauth1 imports from module level into the functions that use them (nova_login, _server_evacuate, _handle_nova_exception, main). \r\nEliminates ~135 lines of mock exception boilerplate across 4 test files. \r\nAdd shared patch_pipeline() fixture in conftest.py replacing 7-deep nested patch blocks in process_service tests. \r\nBind conftest sys.modules submodule mocks to parent mock attributes so lazy imports and patch() targets resolve to the same objects.\r\n\r\n**Commit 2: Remove dead code and consolidate redundant patterns**\r\n\r\nRemove MigrationStatus enum (inline strings), dead _previous_hash state, unreachable VALIDATION_PATTERNS entries, unused _check_critical_services params, redundant validate_input in _host_fence, single-use _cleanup_dict_by_condition helper, and redundant requests.exceptions import. \r\nConsolidate 5 manual error+traceback log pairs into _safe_log_exception calls. \r\nDeduplicate _get_nova_connection by delegating to _establish_nova_connection.\r\n\r\n**Commit 3: Fix fail-open startup, fencing decision log, and document safety model**\r\n\r\nInitialize k8s_api_reachable=True (fail-open) to prevent startup deadlock where fencing was silently blocked until the background health check thread completed its first probe. \r\nInitialize K8S_API_REACHABLE Prometheus gauge to 1 to match. \r\nEmit fencing decision log line before early return so cliff-detection and all-heartbeat-alive cases are logged. \r\nWarn at startup when CHECK_HEARTBEAT is disabled. \r\nAdd Fencing Safety Model section to architecture doc covering gate chain, fail-open/fail-closed semantics, startup race window trade-off, and MedIK8s/InstanceHA responsibility boundary.\r\n" change_url: https://github.com/openstack-k8s-operators/infra-operator/pull/596 commit_id: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 patchset: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 project: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/infra-operator name: openstack-k8s-operators/infra-operator short_name: infra-operator src_dir: src/github.com/openstack-k8s-operators/infra-operator topic: null job: podified-multinode-edpm-deployment-crc jobtags: [] max_attempts: 1 message: RmluYWwgSW5zdGFuY2VIQSBjbGVhbnVwIGFuZCBzbWFsbCBmaXhlcwoKVGhpcyBQUiBjb25zaXN0cyBvZiB0aHJlZSBjb21taXRzOg0KDQoqKkNvbW1pdCAxOiBMYXp5LWltcG9ydCBub3ZhY2xpZW50IGFuZCBrZXlzdG9uZWF1dGgxIFNESyBtb2R1bGVzKioNCg0KTW92ZSBub3ZhY2xpZW50IGFuZCBrZXlzdG9uZWF1dGgxIGltcG9ydHMgZnJvbSBtb2R1bGUgbGV2ZWwgaW50byB0aGUgZnVuY3Rpb25zIHRoYXQgdXNlIHRoZW0gKG5vdmFfbG9naW4sIF9zZXJ2ZXJfZXZhY3VhdGUsIF9oYW5kbGVfbm92YV9leGNlcHRpb24sIG1haW4pLiANCkVsaW1pbmF0ZXMgfjEzNSBsaW5lcyBvZiBtb2NrIGV4Y2VwdGlvbiBib2lsZXJwbGF0ZSBhY3Jvc3MgNCB0ZXN0IGZpbGVzLiANCkFkZCBzaGFyZWQgcGF0Y2hfcGlwZWxpbmUoKSBmaXh0dXJlIGluIGNvbmZ0ZXN0LnB5IHJlcGxhY2luZyA3LWRlZXAgbmVzdGVkIHBhdGNoIGJsb2NrcyBpbiBwcm9jZXNzX3NlcnZpY2UgdGVzdHMuIA0KQmluZCBjb25mdGVzdCBzeXMubW9kdWxlcyBzdWJtb2R1bGUgbW9ja3MgdG8gcGFyZW50IG1vY2sgYXR0cmlidXRlcyBzbyBsYXp5IGltcG9ydHMgYW5kIHBhdGNoKCkgdGFyZ2V0cyByZXNvbHZlIHRvIHRoZSBzYW1lIG9iamVjdHMuDQoNCioqQ29tbWl0IDI6IFJlbW92ZSBkZWFkIGNvZGUgYW5kIGNvbnNvbGlkYXRlIHJlZHVuZGFudCBwYXR0ZXJucyoqDQoNClJlbW92ZSBNaWdyYXRpb25TdGF0dXMgZW51bSAoaW5saW5lIHN0cmluZ3MpLCBkZWFkIF9wcmV2aW91c19oYXNoIHN0YXRlLCB1bnJlYWNoYWJsZSBWQUxJREFUSU9OX1BBVFRFUk5TIGVudHJpZXMsIHVudXNlZCBfY2hlY2tfY3JpdGljYWxfc2VydmljZXMgcGFyYW1zLCByZWR1bmRhbnQgdmFsaWRhdGVfaW5wdXQgaW4gX2hvc3RfZmVuY2UsIHNpbmdsZS11c2UgX2NsZWFudXBfZGljdF9ieV9jb25kaXRpb24gaGVscGVyLCBhbmQgcmVkdW5kYW50IHJlcXVlc3RzLmV4Y2VwdGlvbnMgaW1wb3J0LiANCkNvbnNvbGlkYXRlIDUgbWFudWFsIGVycm9yK3RyYWNlYmFjayBsb2cgcGFpcnMgaW50byBfc2FmZV9sb2dfZXhjZXB0aW9uIGNhbGxzLiANCkRlZHVwbGljYXRlIF9nZXRfbm92YV9jb25uZWN0aW9uIGJ5IGRlbGVnYXRpbmcgdG8gX2VzdGFibGlzaF9ub3ZhX2Nvbm5lY3Rpb24uDQoNCioqQ29tbWl0IDM6IEZpeCBmYWlsLW9wZW4gc3RhcnR1cCwgZmVuY2luZyBkZWNpc2lvbiBsb2csIGFuZCBkb2N1bWVudCBzYWZldHkgbW9kZWwqKg0KDQpJbml0aWFsaXplIGs4c19hcGlfcmVhY2hhYmxlPVRydWUgKGZhaWwtb3BlbikgdG8gcHJldmVudCBzdGFydHVwIGRlYWRsb2NrIHdoZXJlIGZlbmNpbmcgd2FzIHNpbGVudGx5IGJsb2NrZWQgdW50aWwgdGhlIGJhY2tncm91bmQgaGVhbHRoIGNoZWNrIHRocmVhZCBjb21wbGV0ZWQgaXRzIGZpcnN0IHByb2JlLiANCkluaXRpYWxpemUgSzhTX0FQSV9SRUFDSEFCTEUgUHJvbWV0aGV1cyBnYXVnZSB0byAxIHRvIG1hdGNoLiANCkVtaXQgZmVuY2luZyBkZWNpc2lvbiBsb2cgbGluZSBiZWZvcmUgZWFybHkgcmV0dXJuIHNvIGNsaWZmLWRldGVjdGlvbiBhbmQgYWxsLWhlYXJ0YmVhdC1hbGl2ZSBjYXNlcyBhcmUgbG9nZ2VkLiANCldhcm4gYXQgc3RhcnR1cCB3aGVuIENIRUNLX0hFQVJUQkVBVCBpcyBkaXNhYmxlZC4gDQpBZGQgRmVuY2luZyBTYWZldHkgTW9kZWwgc2VjdGlvbiB0byBhcmNoaXRlY3R1cmUgZG9jIGNvdmVyaW5nIGdhdGUgY2hhaW4sIGZhaWwtb3Blbi9mYWlsLWNsb3NlZCBzZW1hbnRpY3MsIHN0YXJ0dXAgcmFjZSB3aW5kb3cgdHJhZGUtb2ZmLCBhbmQgTWVkSUs4cy9JbnN0YW5jZUhBIHJlc3BvbnNpYmlsaXR5IGJvdW5kYXJ5Lg0K patchset: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 pipeline: github-check playbook_context: playbook_projects: trusted/project_0/review.rdoproject.org/config: canonical_name: review.rdoproject.org/config checkout: master commit: f4086da87f3046c98f2a4b907deaeed353c7ab49 trusted/project_1/opendev.org/zuul/zuul-jobs: canonical_name: opendev.org/zuul/zuul-jobs checkout: master commit: 82e3e8b1292a25e38235bb92b157992d326531d1 trusted/project_2/review.rdoproject.org/rdo-jobs: canonical_name: review.rdoproject.org/rdo-jobs checkout: master commit: ae3f884c6c8c32b779dc61f758c0f6a43ade6877 trusted/project_3/github.com/openstack-k8s-operators/ci-framework: canonical_name: github.com/openstack-k8s-operators/ci-framework checkout: main commit: 2d92baec383a4662b63f80a4932f74a9b754b0cf untrusted/project_0/github.com/openstack-k8s-operators/ci-framework: canonical_name: github.com/openstack-k8s-operators/ci-framework checkout: main commit: 2d92baec383a4662b63f80a4932f74a9b754b0cf untrusted/project_1/review.rdoproject.org/config: canonical_name: review.rdoproject.org/config checkout: master commit: f4086da87f3046c98f2a4b907deaeed353c7ab49 untrusted/project_2/opendev.org/zuul/zuul-jobs: canonical_name: opendev.org/zuul/zuul-jobs checkout: master commit: 82e3e8b1292a25e38235bb92b157992d326531d1 untrusted/project_3/review.rdoproject.org/rdo-jobs: canonical_name: review.rdoproject.org/rdo-jobs checkout: master commit: ae3f884c6c8c32b779dc61f758c0f6a43ade6877 playbooks: - path: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/edpm/run.yml roles: - checkout: main checkout_description: playbook branch link_name: ansible/playbook_0/role_0/ci-framework link_target: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework role_path: ansible/playbook_0/role_0/ci-framework/roles - checkout: master checkout_description: project default branch link_name: ansible/playbook_0/role_1/config link_target: untrusted/project_1/review.rdoproject.org/config role_path: ansible/playbook_0/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/playbook_0/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/playbook_0/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/playbook_0/role_3/rdo-jobs link_target: untrusted/project_3/review.rdoproject.org/rdo-jobs role_path: ansible/playbook_0/role_3/rdo-jobs/roles post_playbooks: - path: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/e2e-collect-logs.yml roles: - checkout: main checkout_description: playbook branch link_name: ansible/post_playbook_0/role_0/ci-framework link_target: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_0/role_0/ci-framework/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_0/role_1/config link_target: untrusted/project_1/review.rdoproject.org/config role_path: ansible/post_playbook_0/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_0/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_0/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_0/role_3/rdo-jobs link_target: untrusted/project_3/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_0/role_3/rdo-jobs/roles - path: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/collect-logs.yml roles: - checkout: main checkout_description: playbook branch link_name: ansible/post_playbook_1/role_0/ci-framework link_target: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_1/role_0/ci-framework/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_1/role_1/config link_target: untrusted/project_1/review.rdoproject.org/config role_path: ansible/post_playbook_1/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_1/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_1/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_1/role_3/rdo-jobs link_target: untrusted/project_3/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_1/role_3/rdo-jobs/roles - path: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/multinode-autohold.yml roles: - checkout: main checkout_description: playbook branch link_name: ansible/post_playbook_2/role_0/ci-framework link_target: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_2/role_0/ci-framework/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_2/role_1/config link_target: untrusted/project_1/review.rdoproject.org/config role_path: ansible/post_playbook_2/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_2/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_2/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_2/role_3/rdo-jobs link_target: untrusted/project_3/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_2/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/crc/print-machineconfigpool.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/post_playbook_3/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_3/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/post_playbook_3/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/post_playbook_3/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_3/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_3/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_3/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_3/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/crc/compress-crc-cloud-logs.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/post_playbook_4/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_4/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/post_playbook_4/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/post_playbook_4/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_4/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_4/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_4/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_4/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/crc/compress-logs.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/post_playbook_5/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_5/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/post_playbook_5/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/post_playbook_5/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_5/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_5/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_5/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_5/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/crc/bootstraped-ci-network-cleanup.yml roles: - checkout: main checkout_description: zuul branch link_name: ansible/post_playbook_6/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_6/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/post_playbook_6/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/post_playbook_6/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_6/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_6/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_6/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_6/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/ci-framework-rdo-base/dlrn/dlrn-report.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/post_playbook_7/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/post_playbook_7/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/post_playbook_7/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/post_playbook_7/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_7/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_7/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_7/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_7/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/base-minimal/post-ssh.yaml roles: - checkout: master checkout_description: playbook branch link_name: ansible/post_playbook_8/role_0/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/post_playbook_8/role_0/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_8/role_1/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_8/role_1/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_8/role_2/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_8/role_2/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/base-minimal/post-logs.yaml roles: - checkout: master checkout_description: playbook branch link_name: ansible/post_playbook_9/role_0/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/post_playbook_9/role_0/config/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_9/role_1/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/post_playbook_9/role_1/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/post_playbook_9/role_2/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/post_playbook_9/role_2/rdo-jobs/roles pre_playbooks: - path: trusted/project_0/review.rdoproject.org/config/playbooks/base-minimal/pre.yaml roles: - checkout: master checkout_description: playbook branch link_name: ansible/pre_playbook_0/role_0/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/pre_playbook_0/role_0/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_0/role_1/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_0/role_1/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_0/role_2/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_0/role_2/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/ci-framework-rdo-base/pre.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/pre_playbook_1/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_1/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/pre_playbook_1/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/pre_playbook_1/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_1/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_1/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_1/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_1/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/crc/bootstrap-ci-network.yml roles: - checkout: main checkout_description: zuul branch link_name: ansible/pre_playbook_2/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_2/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/pre_playbook_2/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/pre_playbook_2/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_2/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_2/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_2/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_2/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/crc/prepare-crc.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/pre_playbook_3/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_3/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/pre_playbook_3/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/pre_playbook_3/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_3/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_3/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_3/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_3/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/crc/podman.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/pre_playbook_4/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_4/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/pre_playbook_4/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/pre_playbook_4/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_4/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_4/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_4/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_4/role_3/rdo-jobs/roles - path: trusted/project_0/review.rdoproject.org/config/playbooks/data_plane_adoption/dpa_RH_subscription_registry_login.yaml roles: - checkout: main checkout_description: zuul branch link_name: ansible/pre_playbook_5/role_0/ci-framework link_target: trusted/project_3/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_5/role_0/ci-framework/roles - checkout: master checkout_description: playbook branch link_name: ansible/pre_playbook_5/role_1/config link_target: trusted/project_0/review.rdoproject.org/config role_path: ansible/pre_playbook_5/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_5/role_2/zuul-jobs link_target: trusted/project_1/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_5/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_5/role_3/rdo-jobs link_target: trusted/project_2/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_5/role_3/rdo-jobs/roles - path: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/multinode-customizations.yml roles: - checkout: main checkout_description: playbook branch link_name: ansible/pre_playbook_6/role_0/ci-framework link_target: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_6/role_0/ci-framework/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_6/role_1/config link_target: untrusted/project_1/review.rdoproject.org/config role_path: ansible/pre_playbook_6/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_6/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_6/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_6/role_3/rdo-jobs link_target: untrusted/project_3/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_6/role_3/rdo-jobs/roles - path: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/e2e-prepare.yml roles: - checkout: main checkout_description: playbook branch link_name: ansible/pre_playbook_7/role_0/ci-framework link_target: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_7/role_0/ci-framework/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_7/role_1/config link_target: untrusted/project_1/review.rdoproject.org/config role_path: ansible/pre_playbook_7/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_7/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_7/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_7/role_3/rdo-jobs link_target: untrusted/project_3/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_7/role_3/rdo-jobs/roles - path: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/dump_zuul_data.yml roles: - checkout: main checkout_description: playbook branch link_name: ansible/pre_playbook_8/role_0/ci-framework link_target: untrusted/project_0/github.com/openstack-k8s-operators/ci-framework role_path: ansible/pre_playbook_8/role_0/ci-framework/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_8/role_1/config link_target: untrusted/project_1/review.rdoproject.org/config role_path: ansible/pre_playbook_8/role_1/config/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_8/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/pre_playbook_8/role_2/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/pre_playbook_8/role_3/rdo-jobs link_target: untrusted/project_3/review.rdoproject.org/rdo-jobs role_path: ansible/pre_playbook_8/role_3/rdo-jobs/roles post_review: false post_timeout: 5400 pre_timeout: null project: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/infra-operator name: openstack-k8s-operators/infra-operator short_name: infra-operator src_dir: src/github.com/openstack-k8s-operators/infra-operator projects: github.com/crc-org/crc-cloud: canonical_hostname: github.com canonical_name: github.com/crc-org/crc-cloud checkout: main checkout_description: project override ref commit: 7db2fd7048647a142b2118458ab76b07aed5a494 name: crc-org/crc-cloud required: true short_name: crc-cloud src_dir: src/github.com/crc-org/crc-cloud github.com/openstack-k8s-operators/ci-framework: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/ci-framework checkout: main checkout_description: zuul branch commit: 2d92baec383a4662b63f80a4932f74a9b754b0cf name: openstack-k8s-operators/ci-framework required: true short_name: ci-framework src_dir: src/github.com/openstack-k8s-operators/ci-framework github.com/openstack-k8s-operators/edpm-ansible: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/edpm-ansible checkout: main checkout_description: zuul branch commit: d5eae620a08b412f076b112b4c3d8e0d69cbb047 name: openstack-k8s-operators/edpm-ansible required: true short_name: edpm-ansible src_dir: src/github.com/openstack-k8s-operators/edpm-ansible github.com/openstack-k8s-operators/infra-operator: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/infra-operator checkout: main checkout_description: zuul branch commit: 400b0a26fa4cc56c87e2f38a55bd7e772edbb4c8 name: openstack-k8s-operators/infra-operator required: true short_name: infra-operator src_dir: src/github.com/openstack-k8s-operators/infra-operator github.com/openstack-k8s-operators/install_yamls: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/install_yamls checkout: main checkout_description: zuul branch commit: 28010890899b365d9b163f6cd2faeb71bf37d54f name: openstack-k8s-operators/install_yamls required: true short_name: install_yamls src_dir: src/github.com/openstack-k8s-operators/install_yamls github.com/openstack-k8s-operators/openstack-baremetal-operator: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/openstack-baremetal-operator checkout: main checkout_description: zuul branch commit: 96ee712650c0df1c6bd02de78be0a12085a9827c name: openstack-k8s-operators/openstack-baremetal-operator required: true short_name: openstack-baremetal-operator src_dir: src/github.com/openstack-k8s-operators/openstack-baremetal-operator github.com/openstack-k8s-operators/openstack-must-gather: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/openstack-must-gather checkout: main checkout_description: zuul branch commit: c368cbf84357cebd70fe8ec9c2c849e2aa7905e4 name: openstack-k8s-operators/openstack-must-gather required: true short_name: openstack-must-gather src_dir: src/github.com/openstack-k8s-operators/openstack-must-gather github.com/openstack-k8s-operators/openstack-operator: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/openstack-operator checkout: main checkout_description: zuul branch commit: 721c3f7c64850716e5de5f4e76e1ef4c36c28652 name: openstack-k8s-operators/openstack-operator required: true short_name: openstack-operator src_dir: src/github.com/openstack-k8s-operators/openstack-operator github.com/openstack-k8s-operators/repo-setup: canonical_hostname: github.com canonical_name: github.com/openstack-k8s-operators/repo-setup checkout: main checkout_description: zuul branch commit: 85321f7e0af502d7f06f845886058daf09da34f6 name: openstack-k8s-operators/repo-setup required: true short_name: repo-setup src_dir: src/github.com/openstack-k8s-operators/repo-setup opendev.org/zuul/zuul-jobs: canonical_hostname: opendev.org canonical_name: opendev.org/zuul/zuul-jobs checkout: master checkout_description: project default branch commit: 82e3e8b1292a25e38235bb92b157992d326531d1 name: zuul/zuul-jobs required: true short_name: zuul-jobs src_dir: src/opendev.org/zuul/zuul-jobs review.rdoproject.org/config: canonical_hostname: review.rdoproject.org canonical_name: review.rdoproject.org/config checkout: master checkout_description: project default branch commit: f4086da87f3046c98f2a4b907deaeed353c7ab49 name: config required: true short_name: config src_dir: src/review.rdoproject.org/config ref: refs/pull/596/head resources: {} tenant: rdoproject.org timeout: 10800 topic: null voting: true zuul_log_collection: true