From 878685a8cfbb686be095285ce88ec8cf1b15231d Mon Sep 17 00:00:00 2001 From: Gregory Giguashvili Date: Sat, 11 Jul 2026 07:41:34 +0300 Subject: [PATCH 1/4] Add retries in DNS resolution test --- .../dns-resource-configuration.robot | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/test/suites/configuration1/dns-resource-configuration.robot b/test/suites/configuration1/dns-resource-configuration.robot index a312f1275e..bc54209e8e 100644 --- a/test/suites/configuration1/dns-resource-configuration.robot +++ b/test/suites/configuration1/dns-resource-configuration.robot @@ -118,9 +118,7 @@ Limit Less Than Request Prevents Start DNS Resolution After Resource Change [Documentation] Verify CoreDNS resolves cluster-local services after resource change [Setup] Apply DNS Resource Config ${DNS_CUSTOM_RESOURCES} - ${output}= Oc Exec router-default nslookup kubernetes.default.svc.cluster.local - ... openshift-ingress deployment - Should Contain ${output} kubernetes.default.svc.cluster.local + DNS Should Resolve kubernetes.default.svc.cluster.local [Teardown] Remove DNS Resource Config @@ -182,6 +180,19 @@ Apply Invalid DNS Resource Config VAR ${CURSOR}= ${cursor} scope=TEST Run Keyword And Expect Error 0 != 1 Restart MicroShift +DNS Should Resolve + [Documentation] Wait for CoreDNS to resolve the given hostname + [Arguments] ${hostname} + Wait Until Keyword Succeeds 10x 5s + ... DNS Lookup Should Succeed ${hostname} + +DNS Lookup Should Succeed + [Documentation] Assert that CoreDNS resolves the given hostname + [Arguments] ${hostname} + ${output}= Oc Exec router-default nslookup ${hostname} + ... openshift-ingress deployment + Should Contain ${output} ${hostname} + Remove DNS Resource Config [Documentation] Remove the DNS resource drop-in config and restart MicroShift Remove Drop In MicroShift Config ${DNS_DROPIN} From cf6bee8156c532b481ee135f1b743c34329bdd7c Mon Sep 17 00:00:00 2001 From: Gregory Giguashvili Date: Sat, 11 Jul 2026 07:42:41 +0300 Subject: [PATCH 2/4] Fix CentOS 9/10 optional scenarios --- .../upstream/cos10-src@optional.sh | 25 +++++++++++++++---- .../upstream/cos9-src@optional.sh | 24 +++++++++++++----- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/test/scenarios-bootc/upstream/cos10-src@optional.sh b/test/scenarios-bootc/upstream/cos10-src@optional.sh index 12cd56812b..1a58b02d75 100644 --- a/test/scenarios-bootc/upstream/cos10-src@optional.sh +++ b/test/scenarios-bootc/upstream/cos10-src@optional.sh @@ -2,15 +2,30 @@ # Sourced from scenario.sh and uses functions defined there. +# Each optional suite restarts MicroShift with its own kustomizePaths config, +# adding ~10 minutes of restart overhead to the total execution time. +# shellcheck disable=SC2034 # used elsewhere +TEST_EXECUTION_TIMEOUT=60m + +# shellcheck disable=SC2034 # used elsewhere +# Increase greenboot timeout for optional packages (more services to start) +GREENBOOT_TIMEOUT=1200 + # Redefine network-related settings to use the dedicated network bridge VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere WEB_SERVER_URL="http://${VM_BRIDGE_IP}:${WEB_SERVER_PORT}" scenario_create_vms() { + # Skip sriov network on ARM because the igb driver is not supported. + local networks="${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK},sriov" + if [[ "${UNAME_M}" =~ aarch64 ]]; then + networks="${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK}" + fi + LVM_SYSROOT_SIZE=20480 prepare_kickstart host1 kickstart-bootc.ks.template cos10-bootc-source-optionals - # Two nics - one for macvlan, another for ipvlan (they cannot enslave the same interface) - launch_vm centos10-bootc --network "${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK}" --vm_disksize 25 + # Three nics - one for sriov, one for macvlan, another for ipvlan (they cannot enslave the same interface) + launch_vm centos10-bootc --network "${networks}" --vm_disksize 25 --vm_vcpus 4 } scenario_remove_vms() { @@ -19,11 +34,11 @@ scenario_remove_vms() { scenario_run_tests() { local skip_args="" - - skip_args="--skip sriov" if [[ "${UNAME_M}" =~ aarch64 ]]; then - skip_args+=" --skip tls-scanner" + skip_args="--skip sriov --skip tls-scanner" fi + # Skip generic device plugin on RHEL 10 until we can get the correct kernel-devel package. + skip_args+=" --skip generic-device-plugin" # shellcheck disable=SC2086 run_tests host1 \ --variable "PROMETHEUS_HOST:$(hostname)" \ diff --git a/test/scenarios-bootc/upstream/cos9-src@optional.sh b/test/scenarios-bootc/upstream/cos9-src@optional.sh index feb96ef7b9..163c8b4587 100644 --- a/test/scenarios-bootc/upstream/cos9-src@optional.sh +++ b/test/scenarios-bootc/upstream/cos9-src@optional.sh @@ -2,28 +2,40 @@ # Sourced from scenario.sh and uses functions defined there. +# Each optional suite restarts MicroShift with its own kustomizePaths config, +# adding ~10 minutes of restart overhead to the total execution time. +# shellcheck disable=SC2034 # used elsewhere +TEST_EXECUTION_TIMEOUT=60m + +# shellcheck disable=SC2034 # used elsewhere +# Increase greenboot timeout for optional packages (more services to start) +GREENBOOT_TIMEOUT=1200 + # Redefine network-related settings to use the dedicated network bridge VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere WEB_SERVER_URL="http://${VM_BRIDGE_IP}:${WEB_SERVER_PORT}" scenario_create_vms() { + # Skip sriov network on ARM because the igb driver is not supported. + local networks="${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK},sriov" + if [[ "${UNAME_M}" =~ aarch64 ]]; then + networks="${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK}" + fi + LVM_SYSROOT_SIZE=20480 prepare_kickstart host1 kickstart-bootc.ks.template cos9-bootc-source-optionals - # Two nics - one for macvlan, another for ipvlan (they cannot enslave the same interface) - launch_vm centos9-bootc --network "${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK}" --vm_disksize 25 + # Three nics - one for sriov, one for macvlan, another for ipvlan (they cannot enslave the same interface) + launch_vm centos9-bootc --network "${networks}" --vm_disksize 25 --vm_vcpus 4 } scenario_remove_vms() { remove_vm host1 } - scenario_run_tests() { local skip_args="" - - skip_args="--skip sriov" if [[ "${UNAME_M}" =~ aarch64 ]]; then - skip_args+=" --skip tls-scanner" + skip_args="--skip sriov --skip tls-scanner" fi # shellcheck disable=SC2086 run_tests host1 \ From bc8d02846c996d82cd07a27ffed176502cc50fd6 Mon Sep 17 00:00:00 2001 From: Gregory Giguashvili Date: Sat, 11 Jul 2026 07:44:29 +0300 Subject: [PATCH 3/4] All optional scenarios must have consistent execution and greenboot timeouts --- .../el10/periodics/el102-src@optional.sh | 11 ++++++++++- .../el10/releases/el102-lrel@optional.sh | 9 +++++++++ .../el9/releases/el98-lrel@optional.sh | 10 ++++++++++ test/scenarios/periodics/el98-src@optional.sh | 4 ++++ test/scenarios/releases/el98-lrel@optional.sh | 9 +++++++++ 5 files changed, 42 insertions(+), 1 deletion(-) diff --git a/test/scenarios-bootc/el10/periodics/el102-src@optional.sh b/test/scenarios-bootc/el10/periodics/el102-src@optional.sh index 9d609a1071..77ad47d9a9 100644 --- a/test/scenarios-bootc/el10/periodics/el102-src@optional.sh +++ b/test/scenarios-bootc/el10/periodics/el102-src@optional.sh @@ -2,6 +2,15 @@ # Sourced from scenario.sh and uses functions defined there. +# Each optional suite restarts MicroShift with its own kustomizePaths config, +# adding ~10 minutes of restart overhead to the total execution time. +# shellcheck disable=SC2034 # used elsewhere +TEST_EXECUTION_TIMEOUT=60m + +# shellcheck disable=SC2034 # used elsewhere +# Increase greenboot timeout for optional packages (more services to start) +GREENBOOT_TIMEOUT=1200 + # Redefine network-related settings to use the dedicated network bridge VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere @@ -15,7 +24,7 @@ scenario_create_vms() { fi LVM_SYSROOT_SIZE=20480 prepare_kickstart host1 kickstart-bootc.ks.template rhel102-bootc-source-optionals # Three nics - one for sriov, one for macvlan, another for ipvlan (they cannot enslave the same interface) - launch_vm rhel102-bootc --network "${networks}" --vm_disksize 25 + launch_vm rhel102-bootc --network "${networks}" --vm_disksize 25 --vm_vcpus 4 } scenario_remove_vms() { diff --git a/test/scenarios-bootc/el10/releases/el102-lrel@optional.sh b/test/scenarios-bootc/el10/releases/el102-lrel@optional.sh index a17d90753d..9a62cfccff 100644 --- a/test/scenarios-bootc/el10/releases/el102-lrel@optional.sh +++ b/test/scenarios-bootc/el10/releases/el102-lrel@optional.sh @@ -2,6 +2,15 @@ # Sourced from scenario.sh and uses functions defined there. +# Each optional suite restarts MicroShift with its own kustomizePaths config, +# adding ~10 minutes of restart overhead to the total execution time. +# shellcheck disable=SC2034 # used elsewhere +TEST_EXECUTION_TIMEOUT=60m + +# shellcheck disable=SC2034 # used elsewhere +# Increase greenboot timeout for optional packages (more services to start) +GREENBOOT_TIMEOUT=1200 + # Redefine network-related settings to use the dedicated network bridge VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere diff --git a/test/scenarios-bootc/el9/releases/el98-lrel@optional.sh b/test/scenarios-bootc/el9/releases/el98-lrel@optional.sh index 9f5c35972f..a4d3782b8e 100644 --- a/test/scenarios-bootc/el9/releases/el98-lrel@optional.sh +++ b/test/scenarios-bootc/el9/releases/el98-lrel@optional.sh @@ -2,6 +2,15 @@ # Sourced from scenario.sh and uses functions defined there. +# Each optional suite restarts MicroShift with its own kustomizePaths config, +# adding ~10 minutes of restart overhead to the total execution time. +# shellcheck disable=SC2034 # used elsewhere +TEST_EXECUTION_TIMEOUT=60m + +# shellcheck disable=SC2034 # used elsewhere +# Increase greenboot timeout for optional packages (more services to start) +GREENBOOT_TIMEOUT=1200 + # Redefine network-related settings to use the dedicated network bridge VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere @@ -17,6 +26,7 @@ scenario_create_vms() { if [[ "${UNAME_M}" =~ aarch64 ]]; then networks="${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK}" fi + LVM_SYSROOT_SIZE=20480 prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" # Three nics - one for sriov, one for macvlan, another for ipvlan (they cannot enslave the same interface) launch_vm rhel98-bootc --network "${networks}" --vm_disksize 25 --vm_vcpus 4 diff --git a/test/scenarios/periodics/el98-src@optional.sh b/test/scenarios/periodics/el98-src@optional.sh index 5952472fe0..4ef12c68d9 100644 --- a/test/scenarios/periodics/el98-src@optional.sh +++ b/test/scenarios/periodics/el98-src@optional.sh @@ -7,6 +7,10 @@ # shellcheck disable=SC2034 # used elsewhere TEST_EXECUTION_TIMEOUT=60m +# shellcheck disable=SC2034 # used elsewhere +# Increase greenboot timeout for optional packages (more services to start) +GREENBOOT_TIMEOUT=1200 + # Redefine network-related settings to use the dedicated network bridge VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere diff --git a/test/scenarios/releases/el98-lrel@optional.sh b/test/scenarios/releases/el98-lrel@optional.sh index cefa822684..7dedd16537 100644 --- a/test/scenarios/releases/el98-lrel@optional.sh +++ b/test/scenarios/releases/el98-lrel@optional.sh @@ -2,6 +2,15 @@ # Sourced from scenario.sh and uses functions defined there. +# Each optional suite restarts MicroShift with its own kustomizePaths config, +# adding ~10 minutes of restart overhead to the total execution time. +# shellcheck disable=SC2034 # used elsewhere +TEST_EXECUTION_TIMEOUT=60m + +# shellcheck disable=SC2034 # used elsewhere +# Increase greenboot timeout for optional packages (more services to start) +GREENBOOT_TIMEOUT=1200 + # Redefine network-related settings to use the dedicated network bridge VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere From d7d7042fddf4068c77fc7824b5792a32c090189c Mon Sep 17 00:00:00 2001 From: Gregory Giguashvili Date: Sat, 11 Jul 2026 07:45:34 +0300 Subject: [PATCH 4/4] All optional scenarios must be in periodics or releases --- .../el9/{presubmits => periodics}/el98-src@optional.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/scenarios-bootc/el9/{presubmits => periodics}/el98-src@optional.sh (100%) diff --git a/test/scenarios-bootc/el9/presubmits/el98-src@optional.sh b/test/scenarios-bootc/el9/periodics/el98-src@optional.sh similarity index 100% rename from test/scenarios-bootc/el9/presubmits/el98-src@optional.sh rename to test/scenarios-bootc/el9/periodics/el98-src@optional.sh