From 4add5cdbc20a4223f72a87722d67d25b614d4de1 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Fri, 3 Jul 2026 12:57:45 +0200 Subject: [PATCH 1/4] feat: add RPM-only build mode and scenario framework Build infrastructure: - Add -rpm_only flag to ci_phase_iso_build.sh that skips composer config and image builds, only building RPMs (~13 min vs ~30 min) - Add download_isos action to manage_build_cache.sh to fetch cached installer ISOs needed for VM kickstart in RPM-only mode - Skip mirror registry setup for RPM scenarios in ci_phase_boot_and_test.sh (RPM installs pull from CDN, not mirror) - Add scenarios-rpm to get_scenario_type_from_path() in common.sh Scenario framework (scenario_rpm.sh): - rpm_configure_vm: firewall, RHSM registration, repo configuration - rpm_install_microshift: dnf install, NM connectivity check, service start, endpoint readiness wait - rpm_reboot_and_wait: clean reboot for scenarios needing it (dual-stack, ipv6, multi-nic, low-latency) - configure_rpm_repos/configure_cdn_repo: RHEL version-aware repo setup derived from SCENARIO_TYPE at runtime Companion to openshift/release#81195. pre-commit.check-secrets: ENABLED --- test/bin/ci_phase_boot_and_test.sh | 7 +- test/bin/ci_phase_iso_build.sh | 33 ++++- test/bin/common.sh | 5 +- test/bin/manage_build_cache.sh | 18 ++- test/bin/scenario.sh | 39 +++++- test/bin/scenario_rpm.sh | 218 +++++++++++++++++++++++++++++ 6 files changed, 311 insertions(+), 9 deletions(-) create mode 100644 test/bin/scenario_rpm.sh diff --git a/test/bin/ci_phase_boot_and_test.sh b/test/bin/ci_phase_boot_and_test.sh index 2e2e1b23f0..f466de9fb6 100755 --- a/test/bin/ci_phase_boot_and_test.sh +++ b/test/bin/ci_phase_boot_and_test.sh @@ -10,7 +10,7 @@ SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "${SCRIPTDIR}/common.sh" # Directory to crawl for scenarios when creating/running in batch mode. # The CI system will override this depending on the job its running. -SCENARIO_SOURCES="${SCENARIO_SOURCES:-${TESTDIR}/scenarios}" +SCENARIO_SOURCES="${SCENARIO_SOURCES:-${TESTDIR}/scenarios-ostree}" # Directory where all the scenarios will be copied for execution, preserving # the original scenario type derived from its directory name. SCENARIOS_TO_RUN="${OUTPUTDIR}/scenarios-$(get_scenario_type_from_path "${SCENARIO_SOURCES}")" @@ -53,7 +53,10 @@ bash -x ./bin/manage_hypervisor_config.sh create # Setup a container registry and mirror images. # Release jobs need to also mirror the images from the brew RPMs. -if [[ "${SCENARIO_SOURCES:-}" =~ .*releases.* ]]; then +# RPM-only presubmits skip the mirror registry — scenarios pull images directly. +if [[ "${SCENARIO_SOURCES:-}" =~ .*scenarios-rpm.* ]]; then + export SKIP_MIRROR_REGISTRY=true +elif [[ "${SCENARIO_SOURCES:-}" =~ .*releases.* ]]; then bash -x ./bin/mirror_registry.sh -ri "${BREW_RPM_SOURCE}" else bash -x ./bin/mirror_registry.sh diff --git a/test/bin/ci_phase_iso_build.sh b/test/bin/ci_phase_iso_build.sh index 5cdbbe63f8..ef45c5eb3a 100755 --- a/test/bin/ci_phase_iso_build.sh +++ b/test/bin/ci_phase_iso_build.sh @@ -27,6 +27,9 @@ COMPOSER_CLI_BUILDS=true if [ -v CI_JOB_NAME ] && [[ "${CI_JOB_NAME}" =~ .*bootc.* ]]; then COMPOSER_CLI_BUILDS=false fi +if [ $# -gt 0 ] && [ "$1" = "-rpm_only" ]; then + COMPOSER_CLI_BUILDS=false +fi # Allow for a dry-run option to save on testing time BUILD_DRY_RUN=${BUILD_DRY_RUN:-false} @@ -36,6 +39,19 @@ dry_run() { # Try downloading the 'last' build cache. # Return 0 on success or 1 otherwise. +download_build_cache_isos() { + local -r cache_last="$(\ + ./bin/manage_build_cache.sh getlast \ + -b "${SCENARIO_BUILD_BRANCH}" -t "${SCENARIO_BUILD_TAG}" | \ + awk '/LAST:/ {print $NF}' \ + )" + if [[ -z "${cache_last}" ]]; then + echo "ERROR: Could not determine the 'last' build cache tag for branch '${SCENARIO_BUILD_BRANCH}'" + return 1 + fi + ./bin/manage_build_cache.sh download_isos -b "${SCENARIO_BUILD_BRANCH}" -t "${cache_last}" +} + download_build_cache() { local -r cache_last="$(\ ./bin/manage_build_cache.sh getlast \ @@ -123,7 +139,7 @@ run_bootc_image_build() { if [ -v CI_JOB_NAME ] ; then # Skip all image builds for release testing CI jobs because all the images are fetched from the cache. - if [[ "${CI_JOB_NAME}" =~ .*release(-arm)?(-el(9|10))?$ ]]; then + if [[ "${CI_JOB_NAME}" =~ -release- ]] && [[ ! "${CI_JOB_NAME}" =~ -periodic ]]; then $(dry_run) bash -x ./bin/build_bootc_images.sh -X return fi @@ -135,7 +151,11 @@ run_bootc_image_build() { return fi - local -r os="${CI_JOB_NAME##*-}" + # Extract RHEL version from job name (works regardless of arch/category suffix position) + local os="" + if [[ "${CI_JOB_NAME}" =~ -(el(9|10))(-|$) ]]; then + os="${BASH_REMATCH[1]}" + fi if [[ "${os}" == "el9" || "${os}" == "el10" ]]; then @@ -215,6 +235,15 @@ if [ $# -gt 0 ] && [ "$1" = "-update_cache" ] ; then echo "ERROR: Access to the build cache is not available" exit 1 fi +elif [ $# -gt 0 ] && [ "$1" = "-rpm_only" ] ; then + mkdir -p "${VM_DISK_BASEDIR}" + if ${HAS_CACHE_ACCESS} ; then + download_build_cache_isos + else + echo "ERROR: RPM-only mode requires installer ISOs from the build cache, but cache access is not available" + exit 1 + fi + $(dry_run) bash -x ./bin/build_rpms.sh else GOT_CACHED_DATA=false if ${HAS_CACHE_ACCESS} ; then diff --git a/test/bin/common.sh b/test/bin/common.sh index 8b092354b8..cde2a34e74 100644 --- a/test/bin/common.sh +++ b/test/bin/common.sh @@ -265,7 +265,7 @@ get_scenario_type_from_path() { local type case "${1}" in - */scenarios/*|*/scenarios-ostree/*) + */scenarios-ostree/*) type="ostree" ;; */scenarios-bootc/*) @@ -274,6 +274,9 @@ get_scenario_type_from_path() { */scenarios-bootc-containers/*) type="bootc-containers" ;; + */scenarios-rpm/*) + type="rpm" + ;; *) type="unknown" ;; diff --git a/test/bin/manage_build_cache.sh b/test/bin/manage_build_cache.sh index edfa245310..c667a6a8e9 100755 --- a/test/bin/manage_build_cache.sh +++ b/test/bin/manage_build_cache.sh @@ -160,6 +160,22 @@ action_download() { done } +action_download_isos() { + local -r dst_base="${IMAGEDIR}" + local -r iso_dest="${dst_base}/${VM_POOL_BASENAME}" + + mkdir -p "${iso_dest}" + + local -r src_base="s3://${AWS_BUCKET_NAME}/${BCH_SUBDIR}/${ARCH_SUBDIR}/${TAG_SUBDIR}" + local -r iso_src="${src_base}/${VM_POOL_BASENAME}" + + echo "Downloading installer ISOs from '${iso_src}'" + run_aws_cli s3 sync --quiet --exclude '*' --include '*-installer.iso' "${iso_src}" "${iso_dest}" + + local -r iso_size="$(du -csh "${iso_dest}" | awk 'END{print $1}')" + echo "Downloaded ${iso_size} of installer ISOs" +} + action_verify() { if check_contents ; then echo OK @@ -304,7 +320,7 @@ fi # Run actions case "${action}" in - upload|download|verify|setlast|getlast|dellast|keep) + upload|download|download_isos|verify|setlast|getlast|dellast|keep) "action_${action}" "$@" ;; -h|help) diff --git a/test/bin/scenario.sh b/test/bin/scenario.sh index 0303d542aa..41bb970076 100755 --- a/test/bin/scenario.sh +++ b/test/bin/scenario.sh @@ -1602,8 +1602,10 @@ check_dependencies() { "${TESTDIR}/bin/manage_webserver.sh" "start" fi - if ! sudo podman ps --format '{{.Names}}' | grep -q ^microshift-quay ; then - "${TESTDIR}/bin/mirror_registry.sh" + if [ "${SKIP_MIRROR_REGISTRY:-false}" != "true" ] ; then + if ! sudo podman ps --format '{{.Names}}' | grep -q ^microshift-quay ; then + "${TESTDIR}/bin/mirror_registry.sh" + fi fi } @@ -1672,6 +1674,35 @@ action_login() { fi } +action_setup() { + start_junit + trap "close_junit" EXIT + + if ! load_global_settings; then + record_junit "setup" "load_global_settings" "FAILED" + return 1 + fi + record_junit "setup" "load_global_settings" "OK" + + if ! load_scenario_script; then + record_junit "setup" "load_scenario_script" "FAILED" + return 1 + fi + record_junit "setup" "load_scenario_script" "OK" + + # shellcheck disable=SC2154 + trap 'rc=$? ; \ + [ "${rc}" -ne 0 ] && record_junit "setup" "scenario_setup_vms" "FAILED" ; \ + collect_pcp_reports || true ; \ + sos_report true || rc=1 ; \ + close_junit ; exit "${rc}"' EXIT + + if type scenario_setup_vms &>/dev/null; then + scenario_setup_vms + record_junit "setup" "scenario_setup_vms" "OK" + fi +} + action_run() { start_junit trap "close_junit" EXIT @@ -1754,7 +1785,7 @@ JUNIT_OUTPUT_FILE="${SCENARIO_INFO_DIR}/${SCENARIO}/phase_${action}/junit.xml" cd "${SCRIPTDIR}/.." case "${action}" in - create|run|cleanup|login) + create|setup|run|cleanup|login) "action_${action}" "$@" ;; boot) @@ -1767,10 +1798,12 @@ case "${action}" in rerun) action_cleanup "$@" action_create "$@" + action_setup "$@" action_run "$@" ;; create-and-run) action_create "$@" + action_setup "$@" action_run "$@" ;; *) diff --git a/test/bin/scenario_rpm.sh b/test/bin/scenario_rpm.sh new file mode 100644 index 0000000000..69e80f53a9 --- /dev/null +++ b/test/bin/scenario_rpm.sh @@ -0,0 +1,218 @@ +#!/bin/bash +# Common helper functions for RPM-install scenarios. +# Sourced by individual scenario scripts after scenario.sh sets up the environment. +# +# The RHEL version is derived from SCENARIO_TYPE (set by CI): +# rpm-presubmits-el9 -> RPM_RHEL_VERSION=9.8 +# rpm-presubmits-el10 -> RPM_RHEL_VERSION=10.2 +# For local testing, set RPM_RHEL_VERSION directly. + +export SKIP_GREENBOOT=true +export TEST_RANDOMIZATION=none + +# Derive RHEL version from SCENARIO_TYPE if not set explicitly. +# In CI, SCENARIO_TYPE is written to _output/scenario_type by the iso-build step. +if [[ -z "${RPM_RHEL_VERSION:-}" ]]; then + SCENARIO_TYPE="${SCENARIO_TYPE:-$(cat "${OUTPUTDIR}/scenario_type" 2>/dev/null || echo "")}" + case "${SCENARIO_TYPE}" in + *el10*) RPM_RHEL_VERSION="10.2" ;; + *el9*) RPM_RHEL_VERSION="9.8" ;; + *) + RPM_RHEL_VERSION="9.8" + echo "WARNING: Could not determine RHEL version from SCENARIO_TYPE='${SCENARIO_TYPE}', defaulting to ${RPM_RHEL_VERSION}" + ;; + esac +fi + +RPM_RHEL_MAJOR="${RPM_RHEL_VERSION%%.*}" +RPM_INSTALLER_IMAGE="rhel${RPM_RHEL_VERSION//./}-installer" +echo "RPM scenario targeting RHEL ${RPM_RHEL_VERSION} (installer: ${RPM_INSTALLER_IMAGE})" + +# Configure VM: firewall, RHSM registration, and RPM repos. +rpm_configure_vm() { + configure_vm_firewall host1 + subscription_manager_register host1 + configure_rpm_repos +} + +# Install MicroShift from the local RPM repo. +rpm_install_microshift() { + local -r reponame=$(basename "${LOCAL_REPO}") + local -r repo_url="${WEB_SERVER_URL}/rpm-repos/${reponame}" + local -r target_version=$(local_rpm_version) + + local -r tmp_file=$(mktemp) + tee "${tmp_file}" >/dev/null <&1) || true + echo "Post-install connectivity: ${nm_status}" + if [[ "${nm_status}" != *"full"* ]]; then + echo "WARNING: Network connectivity is '${nm_status}' after RPM install (expected 'full')" + fi + run_command_on_vm host1 "sudo systemctl start microshift.service" + + wait_for_microshift_endpoint /readyz + wait_for_microshift_endpoint /livez + echo "MicroShift is ready" +} + +configure_microshift_mirror() { + local -r repo=$1 + + if [[ -z "${repo}" ]] ; then + return + fi + if [[ ! "${repo}" =~ ^http ]]; then + return + fi + + local -r tmp_file=$(mktemp) + tee "${tmp_file}" >/dev/null </dev/null </dev/null </dev/null; then + break + fi + echo "Waiting for VM to come back (attempt ${attempt}/30)" + sleep 10 + done + wait_for_microshift_endpoint /readyz + wait_for_microshift_endpoint /livez + echo "MicroShift is ready after reboot" +} + +wait_for_microshift_endpoint() { + local -r endpoint=$1 + local -r kubeconfig="/var/lib/microshift/resources/kubeadmin/kubeconfig" + local attempt + for attempt in $(seq 30); do + if run_command_on_vm host1 "sudo /usr/bin/oc get --kubeconfig ${kubeconfig} --raw='${endpoint}' 2>/dev/null" | grep -q "ok"; then + return 0 + fi + echo "Waiting for MicroShift ${endpoint} (attempt ${attempt}/30)" + sleep 10 + done + echo "ERROR: MicroShift ${endpoint} did not become ready" + return 1 +} + From 240f49fe5f1f9eff88015e6d34df8d31fb909d70 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Fri, 3 Jul 2026 12:58:00 +0200 Subject: [PATCH 2/4] feat: add RPM presubmit scenarios MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 16 scenario files in scenarios-rpm/presubmits/ that run pure k8s functional tests after RPM-based MicroShift install: Standard suites: configuration1, configuration2, standard1, standard2, kustomize-core-api, networking, validation Network tests: dual-stack, ipv6, multi-nic (with reboot after install) Component tests: router (2 scenarios, split for parallelism), optional, storage, telemetry-clusterid Lifecycle: upgrade (Y-1 → current) Each scenario uses el-src@ naming — RHEL version (el9/el10) is derived from SCENARIO_TYPE at runtime, so one set of scenarios covers both. pre-commit.check-secrets: ENABLED --- .../presubmits/ci-jobs-changelog.csv | 56 +++++ .../presubmits/ci-jobs-changelog.md | 237 ++++++++++++++++++ .../presubmits/el-src@configuration1.sh | 23 ++ .../presubmits/el-src@configuration2.sh | 22 ++ .../presubmits/el-src@dual-stack.sh | 22 ++ test/scenarios-rpm/presubmits/el-src@ipv6.sh | 30 +++ .../presubmits/el-src@kustomize-core-api.sh | 27 ++ .../presubmits/el-src@multi-nic.sh | 30 +++ .../presubmits/el-src@networking.sh | 26 ++ .../presubmits/el-src@optional.sh | 40 +++ .../scenarios-rpm/presubmits/el-src@router.sh | 21 ++ .../presubmits/el-src@router2.sh | 21 ++ .../presubmits/el-src@standard1.sh | 22 ++ .../presubmits/el-src@standard2.sh | 25 ++ .../presubmits/el-src@storage.sh | 29 +++ .../presubmits/el-src@telemetry-clusterid.sh | 25 ++ .../presubmits/el-src@validation.sh | 25 ++ .../presubmits/el-y1@el-src@upgrade.sh | 28 +++ 18 files changed, 709 insertions(+) create mode 100644 test/scenarios-rpm/presubmits/ci-jobs-changelog.csv create mode 100644 test/scenarios-rpm/presubmits/ci-jobs-changelog.md create mode 100644 test/scenarios-rpm/presubmits/el-src@configuration1.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@configuration2.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@dual-stack.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@ipv6.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@kustomize-core-api.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@multi-nic.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@networking.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@optional.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@router.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@router2.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@standard1.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@standard2.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@storage.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@telemetry-clusterid.sh create mode 100644 test/scenarios-rpm/presubmits/el-src@validation.sh create mode 100644 test/scenarios-rpm/presubmits/el-y1@el-src@upgrade.sh diff --git a/test/scenarios-rpm/presubmits/ci-jobs-changelog.csv b/test/scenarios-rpm/presubmits/ci-jobs-changelog.csv new file mode 100644 index 0000000000..8b06bfadba --- /dev/null +++ b/test/scenarios-rpm/presubmits/ci-jobs-changelog.csv @@ -0,0 +1,56 @@ +File,Status,Old Name,New Name,Notes +main.yaml,NEW,,e2e-aws-tests-rpm-presubmit-el9-x86,RPM presubmit (replaces ostree e2e-aws-tests) +main.yaml,NEW,,e2e-aws-tests-rpm-presubmit-el10-x86,RPM presubmit (replaces ostree e2e-aws-tests-arm) +main.yaml,NEW,,e2e-aws-tests-ostree-periodic-el9-functional-x86,Split from e2e-aws-tests-periodic +main.yaml,NEW,,e2e-aws-tests-ostree-periodic-el9-functional-arm,Split from e2e-aws-tests-periodic-arm +main.yaml,NEW,,e2e-aws-tests-bootc-periodic-el9-functional-x86,Split from e2e-aws-tests-bootc-periodic-el9 +main.yaml,NEW,,e2e-aws-tests-bootc-periodic-el10-functional-x86,Split from e2e-aws-tests-bootc-periodic-el10 +main.yaml,NEW,,e2e-aws-tests-bootc-periodic-el9-functional-arm,Split from e2e-aws-tests-bootc-periodic-arm-el9 +main.yaml,NEW,,e2e-aws-tests-bootc-periodic-el10-functional-arm,Split from e2e-aws-tests-bootc-periodic-arm-el10 +main.yaml,DELETED,e2e-aws-tests,,Ostree presubmit - moved to nightly +main.yaml,DELETED,e2e-aws-tests-arm,,Ostree presubmit - moved to nightly +main.yaml,DELETED,e2e-aws-tests-bootc-el9,,Bootc presubmit - moved to nightly +main.yaml,DELETED,e2e-aws-tests-bootc-el10,,Bootc presubmit - moved to nightly +main.yaml,DELETED,e2e-aws-tests-bootc-arm-el9,,Bootc presubmit - moved to nightly +main.yaml,DELETED,e2e-aws-tests-bootc-arm-el10,,Bootc presubmit - moved to nightly +main.yaml,RENAMED,e2e-aws-tests-bootc-upstream-periodic,e2e-aws-tests-bootc-upstream-periodic-x86,Added -x86 +main.yaml,RENAMED,e2e-aws-tests-cache-nightly,e2e-aws-tests-cache-nightly-x86,Added -x86 +main.yaml,RENAMED,e2e-aws-tests-cache,e2e-aws-tests-cache-x86,Added -x86 +main.yaml,RENAMED,e2e-aws-tests-periodic,e2e-aws-tests-ostree-periodic-el9-lifecycle-x86,Lifecycle split + naming convention +main.yaml,RENAMED,e2e-aws-tests-periodic-arm,e2e-aws-tests-ostree-periodic-el9-lifecycle-arm,Lifecycle split + naming convention +main.yaml,RENAMED,e2e-aws-tests-bootc-periodic-el9,e2e-aws-tests-bootc-periodic-el9-lifecycle-x86,Lifecycle split + -x86 +main.yaml,RENAMED,e2e-aws-tests-bootc-periodic-el10,e2e-aws-tests-bootc-periodic-el10-lifecycle-x86,Lifecycle split + -x86 +main.yaml,RENAMED,e2e-aws-tests-bootc-periodic-arm-el9,e2e-aws-tests-bootc-periodic-el9-lifecycle-arm,Reordered + lifecycle +main.yaml,RENAMED,e2e-aws-tests-bootc-periodic-arm-el10,e2e-aws-tests-bootc-periodic-el10-lifecycle-arm,Reordered + lifecycle +main.yaml,RENAMED,e2e-aws-tests-release,e2e-aws-tests-ostree-release-el9-x86,Naming convention +main.yaml,RENAMED,e2e-aws-tests-release-arm,e2e-aws-tests-ostree-release-el9-arm,Naming convention +main.yaml,RENAMED,e2e-aws-tests-bootc-release-el9,e2e-aws-tests-bootc-release-el9-x86,Added -x86 +main.yaml,RENAMED,e2e-aws-tests-bootc-release-el10,e2e-aws-tests-bootc-release-el10-x86,Added -x86 +main.yaml,RENAMED,e2e-aws-tests-bootc-release-arm-el9,e2e-aws-tests-bootc-release-el9-arm,Reordered -arm +main.yaml,RENAMED,e2e-aws-tests-bootc-release-arm-el10,e2e-aws-tests-bootc-release-el10-arm,Reordered -arm +main.yaml,RENAMED,e2e-aws-tests-bootc-upstream,e2e-aws-tests-bootc-presubmit-upstream-x86,Added trigger + arch +main.yaml,RENAMED,e2e-aws-tests-bootc-upstream-arm,e2e-aws-tests-bootc-presubmit-upstream-arm,Added trigger +main.yaml,RENAMED,e2e-aws-tests-bootc-c2cc,e2e-aws-tests-bootc-presubmit-c2cc-x86,Added trigger + arch +main.yaml,RENAMED,e2e-aws-tests-bootc-c2cc-arm,e2e-aws-tests-bootc-presubmit-c2cc-arm,Added trigger +periodics.yaml,NEW,,e2e-aws-tests-bootc-x86-nightly-el9-functional,Split from e2e-aws-tests-bootc-nightly-el9 +periodics.yaml,NEW,,e2e-aws-tests-bootc-x86-nightly-el10-functional,Split from e2e-aws-tests-bootc-nightly-el10 +periodics.yaml,NEW,,e2e-aws-tests-bootc-arm-nightly-el9-functional,Split from e2e-aws-tests-bootc-arm-nightly-el9 +periodics.yaml,NEW,,e2e-aws-tests-bootc-arm-nightly-el10-functional,Split from e2e-aws-tests-bootc-arm-nightly-el10 +periodics.yaml,NEW,,e2e-aws-tests-ostree-x86-nightly-el9-functional,Split from e2e-aws-tests-nightly +periodics.yaml,NEW,,e2e-aws-tests-ostree-arm-nightly-el9-functional,Split from e2e-aws-tests-arm-nightly +periodics.yaml,NEW,,e2e-aws-tests-bootc-x86-nightly-el10-lifecycle,New (el10 was 1 job - now split) +periodics.yaml,NEW,,e2e-aws-tests-bootc-arm-nightly-el10-lifecycle,New (el10 was 1 job - now split) +periodics.yaml,RENAMED,e2e-aws-tests-bootc-nightly-el9,e2e-aws-tests-bootc-x86-nightly-el9-lifecycle,Naming convention + lifecycle +periodics.yaml,RENAMED,e2e-aws-tests-bootc-nightly-el10,e2e-aws-tests-bootc-x86-nightly-el10-lifecycle,Naming convention + lifecycle +periodics.yaml,RENAMED,e2e-aws-tests-bootc-arm-nightly-el9,e2e-aws-tests-bootc-arm-nightly-el9-lifecycle,Added -lifecycle +periodics.yaml,RENAMED,e2e-aws-tests-bootc-arm-nightly-el10,e2e-aws-tests-bootc-arm-nightly-el10-lifecycle,Added -lifecycle +periodics.yaml,RENAMED,e2e-aws-tests-bootc-c2cc-nightly,e2e-aws-tests-bootc-x86-nightly-c2cc,Naming convention +periodics.yaml,RENAMED,e2e-aws-tests-bootc-c2cc-arm-nightly,e2e-aws-tests-bootc-arm-nightly-c2cc,Reordered +periodics.yaml,RENAMED,e2e-aws-tests-nightly,e2e-aws-tests-ostree-x86-nightly-el9-lifecycle,Naming convention +periodics.yaml,RENAMED,e2e-aws-tests-arm-nightly,e2e-aws-tests-ostree-arm-nightly-el9-lifecycle,Naming convention +periodics.yaml,RENAMED,e2e-aws-tests-release-periodic,e2e-aws-tests-ostree-x86-release-periodic-el9,Naming convention +periodics.yaml,RENAMED,e2e-aws-tests-release-arm-periodic,e2e-aws-tests-ostree-arm-release-periodic-el9,Naming convention +periodics.yaml,RENAMED,e2e-aws-tests-bootc-release-periodic-el9,e2e-aws-tests-bootc-x86-release-periodic-el9,Naming convention +periodics.yaml,RENAMED,e2e-aws-tests-bootc-release-periodic-el10,e2e-aws-tests-bootc-x86-release-periodic-el10,Naming convention +periodics.yaml,RENAMED,e2e-aws-tests-bootc-release-arm-periodic-el9,e2e-aws-tests-bootc-arm-release-periodic-el9,Reordered +periodics.yaml,RENAMED,e2e-aws-tests-bootc-release-arm-periodic-el10,e2e-aws-tests-bootc-arm-release-periodic-el10,Reordered diff --git a/test/scenarios-rpm/presubmits/ci-jobs-changelog.md b/test/scenarios-rpm/presubmits/ci-jobs-changelog.md new file mode 100644 index 0000000000..d86439da23 --- /dev/null +++ b/test/scenarios-rpm/presubmits/ci-jobs-changelog.md @@ -0,0 +1,237 @@ +# CI Jobs Changelog + +Changes to MicroShift CI jobs in `openshift/release` PR #81195. + +## `openshift-microshift-main.yaml` (presubmits + on-demand periodic triggers) + +| Status | Old Name | New Name | Notes | +|--------|----------|----------|-------| +| **NEW** | — | `e2e-aws-tests-rpm-presubmit-el9-x86` | RPM presubmit (replaces ostree `e2e-aws-tests`) | +| **NEW** | — | `e2e-aws-tests-rpm-presubmit-el10-x86` | RPM presubmit (replaces ostree `e2e-aws-tests-arm`) | +| **NEW** | — | `e2e-aws-tests-ostree-periodic-el9-functional-x86` | Split from `e2e-aws-tests-periodic` | +| **NEW** | — | `e2e-aws-tests-ostree-periodic-el9-functional-arm` | Split from `e2e-aws-tests-periodic-arm` | +| **NEW** | — | `e2e-aws-tests-bootc-periodic-el9-functional-x86` | Split from `e2e-aws-tests-bootc-periodic-el9` | +| **NEW** | — | `e2e-aws-tests-bootc-periodic-el10-functional-x86` | Split from `e2e-aws-tests-bootc-periodic-el10` | +| **NEW** | — | `e2e-aws-tests-bootc-periodic-el9-functional-arm` | Split from `e2e-aws-tests-bootc-periodic-arm-el9` | +| **NEW** | — | `e2e-aws-tests-bootc-periodic-el10-functional-arm` | Split from `e2e-aws-tests-bootc-periodic-arm-el10` | +| **DELETED** | `e2e-aws-tests` | — | Ostree presubmit → moved to nightly | +| **DELETED** | `e2e-aws-tests-arm` | — | Ostree presubmit → moved to nightly | +| **DELETED** | `e2e-aws-tests-bootc-el9` | — | Bootc presubmit → moved to nightly | +| **DELETED** | `e2e-aws-tests-bootc-el10` | — | Bootc presubmit → moved to nightly | +| **DELETED** | `e2e-aws-tests-bootc-arm-el9` | — | Bootc presubmit → moved to nightly | +| **DELETED** | `e2e-aws-tests-bootc-arm-el10` | — | Bootc presubmit → moved to nightly | +| RENAMED | `e2e-aws-tests-bootc-upstream-periodic` | `e2e-aws-tests-bootc-upstream-periodic-x86` | Added `-x86` | +| RENAMED | `e2e-aws-tests-cache-nightly` | `e2e-aws-tests-cache-nightly-x86` | Added `-x86` | +| RENAMED | `e2e-aws-tests-cache` | `e2e-aws-tests-cache-x86` | Added `-x86` | +| RENAMED | `e2e-aws-tests-periodic` | `e2e-aws-tests-ostree-periodic-el9-lifecycle-x86` | Lifecycle split + naming convention | +| RENAMED | `e2e-aws-tests-periodic-arm` | `e2e-aws-tests-ostree-periodic-el9-lifecycle-arm` | Lifecycle split + naming convention | +| RENAMED | `e2e-aws-tests-bootc-periodic-el9` | `e2e-aws-tests-bootc-periodic-el9-lifecycle-x86` | Lifecycle split + `-x86` | +| RENAMED | `e2e-aws-tests-bootc-periodic-el10` | `e2e-aws-tests-bootc-periodic-el10-lifecycle-x86` | Lifecycle split + `-x86` | +| RENAMED | `e2e-aws-tests-bootc-periodic-arm-el9` | `e2e-aws-tests-bootc-periodic-el9-lifecycle-arm` | Reordered + lifecycle | +| RENAMED | `e2e-aws-tests-bootc-periodic-arm-el10` | `e2e-aws-tests-bootc-periodic-el10-lifecycle-arm` | Reordered + lifecycle | +| RENAMED | `e2e-aws-tests-release` | `e2e-aws-tests-ostree-release-el9-x86` | Naming convention | +| RENAMED | `e2e-aws-tests-release-arm` | `e2e-aws-tests-ostree-release-el9-arm` | Naming convention | +| RENAMED | `e2e-aws-tests-bootc-release-el9` | `e2e-aws-tests-bootc-release-el9-x86` | Added `-x86` | +| RENAMED | `e2e-aws-tests-bootc-release-el10` | `e2e-aws-tests-bootc-release-el10-x86` | Added `-x86` | +| RENAMED | `e2e-aws-tests-bootc-release-arm-el9` | `e2e-aws-tests-bootc-release-el9-arm` | Reordered `-arm` | +| RENAMED | `e2e-aws-tests-bootc-release-arm-el10` | `e2e-aws-tests-bootc-release-el10-arm` | Reordered `-arm` | +| RENAMED | `e2e-aws-tests-bootc-upstream` | `e2e-aws-tests-bootc-presubmit-upstream-x86` | Added trigger + arch | +| RENAMED | `e2e-aws-tests-bootc-upstream-arm` | `e2e-aws-tests-bootc-presubmit-upstream-arm` | Added trigger | +| RENAMED | `e2e-aws-tests-bootc-c2cc` | `e2e-aws-tests-bootc-presubmit-c2cc-x86` | Added trigger + arch | +| RENAMED | `e2e-aws-tests-bootc-c2cc-arm` | `e2e-aws-tests-bootc-presubmit-c2cc-arm` | Added trigger | + +## `openshift-microshift-release-5.0__periodics.yaml` (nightly crons) + +| Status | Old Name | New Name | Notes | +|--------|----------|----------|-------| +| **NEW** | — | `e2e-aws-tests-bootc-x86-nightly-el9-functional` | Split from `e2e-aws-tests-bootc-nightly-el9` | +| **NEW** | — | `e2e-aws-tests-bootc-x86-nightly-el10-functional` | Split from `e2e-aws-tests-bootc-nightly-el10` | +| **NEW** | — | `e2e-aws-tests-bootc-arm-nightly-el9-functional` | Split from `e2e-aws-tests-bootc-arm-nightly-el9` | +| **NEW** | — | `e2e-aws-tests-bootc-arm-nightly-el10-functional` | Split from `e2e-aws-tests-bootc-arm-nightly-el10` | +| **NEW** | — | `e2e-aws-tests-ostree-x86-nightly-el9-functional` | Split from `e2e-aws-tests-nightly` | +| **NEW** | — | `e2e-aws-tests-ostree-arm-nightly-el9-functional` | Split from `e2e-aws-tests-arm-nightly` | +| **NEW** | — | `e2e-aws-tests-bootc-x86-nightly-el10-lifecycle` | New (el10 was 1 job, now split) | +| **NEW** | — | `e2e-aws-tests-bootc-arm-nightly-el10-lifecycle` | New (el10 was 1 job, now split) | +| RENAMED | `e2e-aws-tests-bootc-nightly-el9` | `e2e-aws-tests-bootc-x86-nightly-el9-lifecycle` | Naming convention + lifecycle | +| RENAMED | `e2e-aws-tests-bootc-nightly-el10` | `e2e-aws-tests-bootc-x86-nightly-el10-lifecycle` | Naming convention + lifecycle | +| RENAMED | `e2e-aws-tests-bootc-arm-nightly-el9` | `e2e-aws-tests-bootc-arm-nightly-el9-lifecycle` | Added `-lifecycle` | +| RENAMED | `e2e-aws-tests-bootc-arm-nightly-el10` | `e2e-aws-tests-bootc-arm-nightly-el10-lifecycle` | Added `-lifecycle` | +| RENAMED | `e2e-aws-tests-bootc-c2cc-nightly` | `e2e-aws-tests-bootc-x86-nightly-c2cc` | Naming convention | +| RENAMED | `e2e-aws-tests-bootc-c2cc-arm-nightly` | `e2e-aws-tests-bootc-arm-nightly-c2cc` | Reordered | +| RENAMED | `e2e-aws-tests-nightly` | `e2e-aws-tests-ostree-x86-nightly-el9-lifecycle` | Naming convention | +| RENAMED | `e2e-aws-tests-arm-nightly` | `e2e-aws-tests-ostree-arm-nightly-el9-lifecycle` | Naming convention | +| RENAMED | `e2e-aws-tests-release-periodic` | `e2e-aws-tests-ostree-x86-release-periodic-el9` | Naming convention | +| RENAMED | `e2e-aws-tests-release-arm-periodic` | `e2e-aws-tests-ostree-arm-release-periodic-el9` | Naming convention | +| RENAMED | `e2e-aws-tests-bootc-release-periodic-el9` | `e2e-aws-tests-bootc-x86-release-periodic-el9` | Naming convention | +| RENAMED | `e2e-aws-tests-bootc-release-periodic-el10` | `e2e-aws-tests-bootc-x86-release-periodic-el10` | Naming convention | +| RENAMED | `e2e-aws-tests-bootc-release-arm-periodic-el9` | `e2e-aws-tests-bootc-arm-release-periodic-el9` | Reordered | +| RENAMED | `e2e-aws-tests-bootc-release-arm-periodic-el10` | `e2e-aws-tests-bootc-arm-release-periodic-el10` | Reordered | + +## Summary + +| | main.yaml | periodics.yaml | Total | +|---|---|---|---| +| **New** | 8 | 8 | **16** | +| **Deleted** | 6 | 0 | **6** | +| **Renamed** | 20 | 14 | **34** | +| Unchanged | 13 | 10 | 23 | + + + +⏺ ┌────────────────┬─────────────┬───────────────┬──────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────┬──────────────────────────────────────────┐ + │ File │ Status │ Trigger │ Old Name │ New Name │ Notes │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ NEW │ PR-auto │ │ e2e-aws-tests-rpm-presubmit-el{9,10}-arm │ RPM presubmit (replaces ostree) │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ DELETED │ PR-auto │ e2e-aws-tests(-arm)? │ │ Ostree presubmit - moved to nightly │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ DELETED │ PR-auto │ e2e-aws-tests-bootc(-arm)?-el{9,10} │ │ Bootc presubmit - moved to nightly │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ PR-auto │ e2e-aws-tests-bootc-(upstream|c2cc)(-arm)? │ e2e-aws-tests-bootc-presubmit-(upstream|c2cc)-{x86,arm} │ Added trigger (+ arch) │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ PR-auto │ e2e-aws-tests-cache │ e2e-aws-tests-cache-x86 │ Added -x86 │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ NEW │ PR-manually │ │ e2e-aws-tests-ostree-periodic-el9-functional-{x86,arm} │ Split from e2e-aws-tests-periodic(-arm)? │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ NEW │ PR-manually │ │ e2e-aws-tests-bootc-periodic-el{9,10}-functional-{x86,arm} │ Split from bootc-periodic jobs │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ PR-manually │ e2e-aws-tests-periodic(-arm)? │ e2e-aws-tests-ostree-periodic-el9-lifecycle-{x86,arm} │ Lifecycle split + naming convention │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ PR-manually │ e2e-aws-tests-bootc-periodic(-arm)?-el{9,10} │ e2e-aws-tests-bootc-periodic-el{9,10}-lifecycle-{x86,arm} │ Lifecycle split │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ PR-manually │ e2e-aws-tests-release(-arm)? │ e2e-aws-tests-ostree-release-el9-{x86,arm} │ Naming convention │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ PR-manually │ e2e-aws-tests-bootc-release(-arm)?-el{9,10} │ e2e-aws-tests-bootc-release-el{9,10}-{x86,arm} │ Reordered │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ PR-manually │ e2e-aws-tests-bootc-upstream-periodic │ e2e-aws-tests-bootc-upstream-periodic-x86 │ Added -x86 │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ periodics.yaml │ NEW │ cron (daily) │ │ e2e-aws-tests-bootc-{x86,arm}-nightly-el{9,10}-functional │ Split from bootc nightly jobs │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ periodics.yaml │ NEW │ cron (daily) │ │ e2e-aws-tests-ostree-{x86,arm}-nightly-el9-functional │ Split from ostree nightly jobs │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ periodics.yaml │ NEW/RENAMED │ cron (daily) │ e2e-aws-tests-bootc(-arm)?-nightly-el9 │ e2e-aws-tests-bootc-{x86,arm}-nightly-el{9,10}-lifecycle │ el9 renamed, el10 new │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ periodics.yaml │ RENAMED │ cron (daily) │ e2e-aws-tests(-arm)?-nightly │ e2e-aws-tests-ostree-{x86,arm}-nightly-el9-lifecycle │ Naming convention │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ periodics.yaml │ RENAMED │ cron (daily) │ e2e-aws-tests-bootc-c2cc(-arm)?-nightly │ e2e-aws-tests-bootc-{x86,arm}-nightly-c2cc │ Naming convention │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ main.yaml │ RENAMED │ cron (daily) │ e2e-aws-tests-cache-nightly │ e2e-aws-tests-cache-nightly-x86 │ Added -x86 │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ periodics.yaml │ RENAMED │ cron (weekly) │ e2e-aws-tests-release(-arm)?-periodic │ e2e-aws-tests-ostree-{x86,arm}-release-periodic-el9 │ Naming convention │ + ├────────────────┼─────────────┼───────────────┼──────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤ + │ periodics.yaml │ RENAMED │ cron (weekly) │ e2e-aws-tests-bootc-release(-arm)?-periodic-el{9,10} │ e2e-aws-tests-bootc-{x86,arm}-release-periodic-el{9,10} │ Reordered │ + └────────────────┴─────────────┴───────────────┴──────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────┴──────────────────────────────────────────┘ + + + ⏺ Here's the full updated table: + + ┌────────────────┬───────────────┬───────────────────────────────────────────────────────────────┬─────────────────────────────────────────────┐ + │ File │ Trigger │ Name │ Notes │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ e2e-aws-tests-rpm-presubmit-el{9,10}-arm │ NEW — RPM presubmit (replaces ostree) │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ e2e-aws-tests-bootc-presubmit-(upstream|c2cc)-{x86,arm} │ RENAMED — added trigger + arch │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ e2e-aws-tests-cache-x86 │ RENAMED — added -x86 │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ e2e-aws-tests-cache-arm │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ e2e-aws-ai-model-serving │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ e2e-aws-footprint-and-performance │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ images │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ ocp-full-conformance(-serial)?-rhel-eus │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ security │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ test-(rebase|rpm|unit) │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-auto │ verify(-deps)? │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-manually │ e2e-aws-tests-ostree-periodic-el9-functional-{x86,arm} │ NEW — split from periodic │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-manually │ e2e-aws-tests-bootc-periodic-el{9,10}-functional-{x86,arm} │ NEW — split from bootc-periodic │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-manually │ e2e-aws-tests-ostree-periodic-el9-lifecycle-{x86,arm} │ RENAMED — lifecycle split │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-manually │ e2e-aws-tests-bootc-periodic-el{9,10}-lifecycle-{x86,arm} │ RENAMED — lifecycle split │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-manually │ e2e-aws-tests-ostree-release-el9-{x86,arm} │ RENAMED — naming convention │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-manually │ e2e-aws-tests-bootc-release-el{9,10}-{x86,arm} │ RENAMED — reordered │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ main.yaml │ PR-manually │ e2e-aws-tests-bootc-upstream-periodic-x86 │ RENAMED — added -x86 │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-tests-(ostree|bootc)-{x86,arm}-nightly-el9-functional │ NEW — split from nightly │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-tests-bootc-{x86,arm}-nightly-el10-functional │ NEW — split from bootc nightly │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-tests-(ostree|bootc)-{x86,arm}-nightly-el9-lifecycle │ RENAMED — naming convention │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-tests-bootc-{x86,arm}-nightly-el10-lifecycle │ NEW/RENAMED — el9 renamed, el10 new │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-tests-bootc-{x86,arm}-nightly-c2cc │ RENAMED — naming convention │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-tests-cache-nightly(-arm)? │ -arm unchanged, -x86 renamed from main.yaml │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-ai-model-serving-nightly │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ e2e-aws-footprint-and-performance-nightly │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ clusterbot-nightly │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (daily) │ rebase-on-nightlies │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (weekly) │ e2e-aws-tests-ostree-{x86,arm}-release-periodic-el9 │ RENAMED — naming convention │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (weekly) │ e2e-aws-tests-bootc-{x86,arm}-release-periodic-el{9,10} │ RENAMED — reordered │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ cron (weekly) │ e2e-aws-ovn-ocp-conformance(-serial)? │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ other │ publish-release-notes │ unchanged │ + ├────────────────┼───────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤ + │ periodics.yaml │ other │ update-versions-releases │ unchanged │ + └────────────────┴───────────────┴───────────────────────────────────────────────────────────────┴─────────────────────────────────────────────┘ + + + +⏺ Based on the PR changes, here are all rehearsable presubmit jobs (new or meaningfully changed): + + RPM presubmits (new, ARM): + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-rpm-presubmit-el9-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-rpm-presubmit-el10-arm + + Functional splits (new): + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-ostree-periodic-el9-functional-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-ostree-periodic-el9-functional-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el9-functional-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el10-functional-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el9-functional-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el10-functional-arm + + Lifecycle renames (renamed, but new target names): + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-ostree-periodic-el9-lifecycle-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-ostree-periodic-el9-lifecycle-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el9-lifecycle-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el10-lifecycle-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el9-lifecycle-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-periodic-el10-lifecycle-arm + + Release renames: + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-ostree-release-el9-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-ostree-release-el9-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-release-el9-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-release-el10-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-release-el9-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-release-el10-arm + + Other renames (cache, upstream, c2cc): + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-cache-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-cache-nightly-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-upstream-periodic-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-presubmit-upstream-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-presubmit-upstream-arm + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-presubmit-c2cc-x86 + /pj-rehearse pull-ci-openshift-microshift-main-e2e-aws-tests-bootc-presubmit-c2cc-arm diff --git a/test/scenarios-rpm/presubmits/el-src@configuration1.sh b/test/scenarios-rpm/presubmits/el-src@configuration1.sh new file mode 100644 index 0000000000..c4c7774240 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@configuration1.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/configuration1/configuration.robot \ + suites/configuration1/tls-configuration.robot \ + suites/configuration1/show-config.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@configuration2.sh b/test/scenarios-rpm/presubmits/el-src@configuration2.sh new file mode 100644 index 0000000000..14d08f8bcd --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@configuration2.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/configuration1/dns-resource-configuration.robot \ + suites/configuration2/drop-in-config.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@dual-stack.sh b/test/scenarios-rpm/presubmits/el-src@dual-stack.sh new file mode 100644 index 0000000000..7cc9b88736 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@dual-stack.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" --network "${VM_DUAL_STACK_NETWORK}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift + # Reboot to ensure clean IPv6/dual-stack network state after NM restart + rpm_reboot_and_wait +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 suites/ipv6/dualstack.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@ipv6.sh b/test/scenarios-rpm/presubmits/el-src@ipv6.sh new file mode 100644 index 0000000000..84ebb35d60 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@ipv6.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +# Redefine network-related settings to use the dedicated IPv6 network bridge +# shellcheck disable=SC2034 # used elsewhere +VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_IPV6_NETWORK}")" +# shellcheck disable=SC2034 # used elsewhere +WEB_SERVER_URL="http://[${VM_BRIDGE_IP}]:${WEB_SERVER_PORT}" +# shellcheck disable=SC2034 # used elsewhere +MIRROR_REGISTRY_URL="${VM_BRIDGE_IP}:${MIRROR_REGISTRY_PORT}" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" false true + launch_vm "${RPM_INSTALLER_IMAGE}" --network "${VM_IPV6_NETWORK}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift + # Reboot to ensure clean IPv6 network state after NM restart + rpm_reboot_and_wait +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 suites/ipv6/singlestack.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@kustomize-core-api.sh b/test/scenarios-rpm/presubmits/el-src@kustomize-core-api.sh new file mode 100644 index 0000000000..73267a296c --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@kustomize-core-api.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + --variable "EXPECTED_OS_VERSION:${RPM_RHEL_VERSION}" \ + suites/configuration2/kustomize-sources.robot \ + suites/standard1/kustomize.robot \ + suites/standard1/version.robot \ + suites/core-api/ \ + suites/otp-workloads/oc-cli.robot \ + suites/otp-workloads/statefulset-pvc.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@multi-nic.sh b/test/scenarios-rpm/presubmits/el-src@multi-nic.sh new file mode 100644 index 0000000000..eb385f4200 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@multi-nic.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" --network default,"${VM_MULTUS_NETWORK}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift + # Reboot so greenboot-healthcheck runs at boot (it refuses manual start) + # and NM fully configures all NICs + rpm_reboot_and_wait +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + local -r vmname=$(full_vm_name host1) + local -r vm_ip1=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | head -1) + local -r vm_ip2=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | tail -1) + + run_tests host1 \ + --variable "USHIFT_HOST_IP1:${vm_ip1}" \ + --variable "USHIFT_HOST_IP2:${vm_ip2}" \ + suites/network/multi-nic.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@networking.sh b/test/scenarios-rpm/presubmits/el-src@networking.sh new file mode 100644 index 0000000000..086728acaa --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@networking.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/standard1/dns.robot \ + suites/standard1/etcd.robot \ + suites/standard1/networking-smoke.robot \ + suites/standard1/containers-policy.robot \ + suites/standard1/validate-selinux-policy.robot \ + suites/configuration2/apiserver-readiness.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@optional.sh b/test/scenarios-rpm/presubmits/el-src@optional.sh new file mode 100644 index 0000000000..793070963c --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@optional.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +# 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 + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" --vm_disksize 25 --vm_vcpus 4 +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift + + # Install all optional RPMs needed by the compatible test suites. + # cert-manager, gateway-api, olm are tested; the rest are installed + # because they are pulled as dependencies or needed by the config. + run_command_on_vm host1 "sudo dnf install -y ${MICROSHIFT_OPTIONAL_RPMS}" +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + # Only run RPM-compatible optional tests. + # NOT included (must stay on libvirt/bootc): + # - generic-device-plugin.robot: requires serialsim kernel module + # - multus.robot: requires multiple NICs on multus bridge, hypervisor L2 connectivity + # - observability.robot: requires external Prometheus + Loki on hypervisor + # - sriov.robot: requires SR-IOV physical NIC hardware + # - healthchecks-disabled-service.robot: requires greenboot + microshift-greenboot packages + run_tests host1 \ + suites/optional/cert-manager.robot \ + suites/optional/olm.robot \ + suites/optional/gateway-api.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@router.sh b/test/scenarios-rpm/presubmits/el-src@router.sh new file mode 100644 index 0000000000..4f007c3501 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@router.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/router/router-ownership.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@router2.sh b/test/scenarios-rpm/presubmits/el-src@router2.sh new file mode 100644 index 0000000000..6071edfa11 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@router2.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/router/router-verify.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@standard1.sh b/test/scenarios-rpm/presubmits/el-src@standard1.sh new file mode 100644 index 0000000000..c184431195 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@standard1.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/standard1/hostname.robot \ + suites/configuration2/audit-log.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@standard2.sh b/test/scenarios-rpm/presubmits/el-src@standard2.sh new file mode 100644 index 0000000000..2e394784b1 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@standard2.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/standard2/dns-custom-config.robot \ + suites/standard2/log-scan.robot \ + suites/standard2/validate-service-account-ca-bundle.robot \ + suites/standard2/validate-selinux-policy.robot \ + suites/standard2/containers-policy.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@storage.sh b/test/scenarios-rpm/presubmits/el-src@storage.sh new file mode 100644 index 0000000000..33dd8ed872 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@storage.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift + + # Wait for LVMS operator and vg-manager to be ready before running storage tests. + local -r kc="/var/lib/microshift/resources/kubeadmin/kubeconfig" + run_command_on_vm host1 "sudo /usr/bin/oc --kubeconfig ${kc} wait --for=condition=Available deployment/lvms-operator -n openshift-storage --timeout=300s" + run_command_on_vm host1 "sudo /usr/bin/oc --kubeconfig ${kc} wait --for=jsonpath='{.status.numberReady}'=1 daemonset/vg-manager -n openshift-storage --timeout=300s" +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + # Only run RPM-compatible storage tests. + # Excluded: reboot.robot (needs greenboot), snapshot.robot (needs LVM thin pool setup). + run_tests host1 \ + suites/storage/pvc-resize.robot \ + suites/storage/storage-version-migration.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@telemetry-clusterid.sh b/test/scenarios-rpm/presubmits/el-src@telemetry-clusterid.sh new file mode 100644 index 0000000000..023a1997c2 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@telemetry-clusterid.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + --variable "PROXY_HOST:${VM_BRIDGE_IP}" \ + --variable "PROXY_PORT:9001" \ + --variable "PROMETHEUS_HOST:$(hostname)" \ + suites/telemetry/telemetry.robot \ + suites/osconfig/clusterid.robot +} diff --git a/test/scenarios-rpm/presubmits/el-src@validation.sh b/test/scenarios-rpm/presubmits/el-src@validation.sh new file mode 100644 index 0000000000..8ee9656661 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-src@validation.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} +scenario_setup_vms() { + rpm_configure_vm + rpm_install_microshift +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + suites/standard2/validate-custom-certificates.robot \ + suites/configuration2/logging.robot \ + suites/configuration2/data-dir.robot \ + suites/standard2/feature-gates.robot \ + suites/standard2/validate-certificate-rotation.robot +} diff --git a/test/scenarios-rpm/presubmits/el-y1@el-src@upgrade.sh b/test/scenarios-rpm/presubmits/el-y1@el-src@upgrade.sh new file mode 100644 index 0000000000..9e413a3755 --- /dev/null +++ b/test/scenarios-rpm/presubmits/el-y1@el-src@upgrade.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# shellcheck source=test/bin/scenario_rpm.sh +source "${TESTDIR}/bin/scenario_rpm.sh" + +scenario_create_vms() { + prepare_kickstart host1 kickstart-liveimg.ks.template "" + launch_vm "${RPM_INSTALLER_IMAGE}" +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_setup_vms() { + rpm_configure_vm + configure_microshift_mirror "${PREVIOUS_RELEASE_REPO}" +} + +scenario_run_tests() { + local -r reponame=$(basename "${LOCAL_REPO}") + + run_tests host1 \ + --exitonfailure \ + --variable "SOURCE_REPO_URL:${WEB_SERVER_URL}/rpm-repos/${reponame}" \ + --variable "TARGET_VERSION:$(local_rpm_version)" \ + --variable "PREVIOUS_MINOR_VERSION:${PREVIOUS_MINOR_VERSION}" \ + suites/rpm/upgrade-successful.robot +} From 2e37648c5de56e6eb07551efa30bf81da2c4ee04 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Fri, 3 Jul 2026 12:58:11 +0200 Subject: [PATCH 3/4] refactor: split router.robot into two files for parallel execution router.robot (18m11s, 7 tests) was a single-file bottleneck. Split into: router-ownership.robot (~8m): namespace ownership, router disabled, exposure configuration tests router-verify.robot (~10m): tuning, security, access logging tests Shared keywords and variables extracted to router.resource, imported by both files. This enables running router tests in two parallel scenario VMs instead of one sequential run. pre-commit.check-secrets: ENABLED --- test/suites/router/router-ownership.robot | 185 ++++++++++++++ .../{router.robot => router-verify.robot} | 227 +----------------- test/suites/router/router.resource | 58 +++++ 3 files changed, 245 insertions(+), 225 deletions(-) create mode 100644 test/suites/router/router-ownership.robot rename test/suites/router/{router.robot => router-verify.robot} (53%) create mode 100644 test/suites/router/router.resource diff --git a/test/suites/router/router-ownership.robot b/test/suites/router/router-ownership.robot new file mode 100644 index 0000000000..d54b4a652e --- /dev/null +++ b/test/suites/router/router-ownership.robot @@ -0,0 +1,185 @@ +*** Settings *** +Documentation Router ownership, disable, and exposure tests + +Resource router.resource + +Suite Setup Setup +Suite Teardown Teardown + +Test Tags restart slow + + +*** Variables *** +${NS_OWNERSHIP_1} ${EMPTY} +${NS_OWNERSHIP_2} ${EMPTY} +${ALTERNATIVE_HTTP_PORT} 8000 +${ALTERNATIVE_HTTPS_PORT} 8001 +${HOSTNAME} hello-microshift.cluster.local +${FAKE_LISTEN_IP} 99.99.99.99 +${ROUTER_REMOVED} SEPARATOR=\n +... --- +... ingress: +... \ \ status: Removed +${OWNERSHIP_ALLOW} SEPARATOR=\n +... --- +... ingress: +... \ \ status: Managed +... \ \ routeAdmissionPolicy: +... \ \ \ \ namespaceOwnership: InterNamespaceAllowed +${OWNERSHIP_STRICT} SEPARATOR=\n +... --- +... ingress: +... \ \ status: Managed +... \ \ routeAdmissionPolicy: +... \ \ \ \ namespaceOwnership: Strict +${ROUTER_EXPOSE_FULL} SEPARATOR=\n +... --- +... ingress: +... \ \ status: Managed +... \ \ ports: +... \ \ \ \ http: ${ALTERNATIVE_HTTP_PORT} +... \ \ \ \ https: ${ALTERNATIVE_HTTPS_PORT} +... \ \ listenAddress: +... \ \ - br-ex + + +*** Test Cases *** +Router Namespace Ownership + [Documentation] Test InterNamespaceAllow configuration options in + ... Router admission policy. + [Setup] Run Keywords + ... Setup Namespaces + ... Setup Hello MicroShift Pods In Multiple Namespaces + + Configure Namespace Ownership Strict + Wait Until Keyword Succeeds 60x 1s + ... Http Port Should Be Open ${HTTP_PORT} + ${result_1}= Run Keyword And Return Status + ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_1} + ${result_2}= Run Keyword And Return Status + ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_2} + IF (${result_1}==True and ${result_2}==True) or (${result_1}==False and ${result_2}==False) + Fail + END + + Configure Namespace Ownership Allowed + Wait Until Keyword Succeeds 60x 1s + ... Http Port Should Be Open ${HTTP_PORT} + Wait Until Keyword Succeeds 60x 2s + ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_1} + Wait Until Keyword Succeeds 60x 2s + ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_2} + + [Teardown] Delete Namespaces + +Router Disabled + [Documentation] Disable the router and check the namespace does not exist. + [Setup] Disable Router + + Oc Wait namespace/openshift-ingress --for=delete --timeout=300s + + [Teardown] Run Keywords + ... Remove Custom Config + ... Restart MicroShift + ... Wait For Router Ready + +Router Exposure Configuration + [Documentation] Test custom ports and custom listening addresses. + [Setup] Run Keywords + ... Configure Router Exposure + ... Add Fake IP To NIC + + Wait Until Keyword Succeeds 60x 2s + ... Internal Router Port Should Be Open 10.44.0.0 ${ALTERNATIVE_HTTP_PORT} http + Wait Until Keyword Succeeds 60x 2s + ... Internal Router Port Should Be Open 10.44.0.0 ${ALTERNATIVE_HTTPS_PORT} https + # The link in which this IP was added was configured in MicroShift. Note the IP was + # added after MicroShift started, therefore it must pick it up dynamically. + Wait Until Keyword Succeeds 60x 2s + ... Internal Router Port Should Be Open ${FAKE_LISTEN_IP} ${ALTERNATIVE_HTTP_PORT} http + + [Teardown] Remove Fake IP From NIC + + +*** Keywords *** +Configure Namespace Ownership Allowed + [Documentation] Configure MicroShift to use InterNamespaceAllowed namespace ownership. + Setup With Custom Config ${OWNERSHIP_ALLOW} + Wait For Router Ready + +Configure Namespace Ownership Strict + [Documentation] Configure MicroShift to use Strict namespace ownership. + Setup With Custom Config ${OWNERSHIP_STRICT} + Wait For Router Ready + +Configure Router Exposure + [Documentation] Configure MicroShift to use Strict namespace ownership. + Setup With Custom Config ${ROUTER_EXPOSE_FULL} + Wait For Router Ready + +Disable Router + [Documentation] Disable router. + Setup With Custom Config ${ROUTER_REMOVED} + +Setup Namespaces + [Documentation] Configure the required namespaces for namespace ownership tests. + VAR ${NS_OWNERSHIP_1}= ${NAMESPACE}-ownership-1 scope=SUITE + VAR ${NS_OWNERSHIP_2}= ${NAMESPACE}-ownership-2 scope=SUITE + Create Namespace ${NS_OWNERSHIP_1} + Create Namespace ${NS_OWNERSHIP_2} + +Delete Namespaces + [Documentation] Remove namespace ownership namespaces. + Remove Namespace ${NS_OWNERSHIP_1} + Remove Namespace ${NS_OWNERSHIP_2} + +Setup Hello MicroShift Pods In Multiple Namespaces + [Documentation] Create and expose hello microshift pods in two namespaces. + Create Hello MicroShift Pod ns=${NS_OWNERSHIP_1} + Create Hello MicroShift Pod ns=${NS_OWNERSHIP_2} + Expose Hello MicroShift ${NS_OWNERSHIP_1} + Expose Hello MicroShift ${NS_OWNERSHIP_2} + Oc Expose svc hello-microshift --hostname ${HOSTNAME} --path /${NS_OWNERSHIP_1} -n ${NS_OWNERSHIP_1} + Oc Expose svc hello-microshift --hostname ${HOSTNAME} --path /${NS_OWNERSHIP_2} -n ${NS_OWNERSHIP_2} + +Http Port Should Be Open + [Documentation] Connect to the router and expect a response using http. A 503 response means the router + ... is up but no routes are configured for the requested path. + [Arguments] ${port} + Access Hello MicroShift No Route ${port} + +Port Should Be Closed + [Documentation] Try to connect to the router and expect a failure when connecting. + [Arguments] ${port} + ${rc} ${ignore_out} ${ignore_err}= Access Hello MicroShift ${port} + # 7 is the error code for connection refused when using curl. + Should Be Equal As Integers ${rc} 7 + +Internal Router Port Should Be Open + [Documentation] Test whether the given router port is open from within MicroShift's host + ... using the given IP address. + [Arguments] ${router_ip} ${port} ${scheme}=http + ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command + ... curl -I -k ${scheme}://${router_ip}:${port} + ... sudo=False return_rc=True return_stderr=True return_stdout=True + Log Many ${stdout} ${stderr} + Should Be Equal As Integers 0 ${rc} + Should Match Regexp ${stdout} HTTP.*503 + +Add Fake IP To NIC + [Documentation] Add the given IP to the given NIC temporarily. + [Arguments] ${ip_address}=${FAKE_LISTEN_IP} ${nic_name}=br-ex + ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command + ... ip address add ${ip_address}/32 dev ${nic_name} + ... sudo=True return_rc=True return_stderr=True return_stdout=True + Log Many ${stdout} ${stderr} + Should Be Equal As Integers 0 ${rc} + +Remove Fake IP From NIC + [Documentation] Remove the given IP from the given NIC. + [Arguments] ${ip_address}=${FAKE_LISTEN_IP} ${nic_name}=br-ex + ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command + ... ip address delete ${ip_address}/32 dev ${nic_name} + ... sudo=True return_rc=True return_stderr=True return_stdout=True + Log Many ${stdout} ${stderr} + Should Be Equal As Integers 0 ${rc} diff --git a/test/suites/router/router.robot b/test/suites/router/router-verify.robot similarity index 53% rename from test/suites/router/router.robot rename to test/suites/router/router-verify.robot index 2d7553517d..9b25eaddb9 100644 --- a/test/suites/router/router.robot +++ b/test/suites/router/router-verify.robot @@ -1,11 +1,7 @@ *** Settings *** -Documentation Router tests +Documentation Router configuration verification tests -Resource ../../resources/common.resource -Resource ../../resources/oc.resource -Resource ../../resources/ostree-health.resource -Resource ../../resources/microshift-network.resource -Resource ../../resources/microshift-config.resource +Resource router.resource Suite Setup Setup Suite Teardown Teardown @@ -14,37 +10,6 @@ Test Tags restart slow *** Variables *** -${NS_OWNERSHIP_1} ${EMPTY} -${NS_OWNERSHIP_2} ${EMPTY} -${ALTERNATIVE_HTTP_PORT} 8000 -${ALTERNATIVE_HTTPS_PORT} 8001 -${HOSTNAME} hello-microshift.cluster.local -${FAKE_LISTEN_IP} 99.99.99.99 -${ROUTER_REMOVED} SEPARATOR=\n -... --- -... ingress: -... \ \ status: Removed -${OWNERSHIP_ALLOW} SEPARATOR=\n -... --- -... ingress: -... \ \ status: Managed -... \ \ routeAdmissionPolicy: -... \ \ \ \ namespaceOwnership: InterNamespaceAllowed -${OWNERSHIP_STRICT} SEPARATOR=\n -... --- -... ingress: -... \ \ status: Managed -... \ \ routeAdmissionPolicy: -... \ \ \ \ namespaceOwnership: Strict -${ROUTER_EXPOSE_FULL} SEPARATOR=\n -... --- -... ingress: -... \ \ status: Managed -... \ \ ports: -... \ \ \ \ http: ${ALTERNATIVE_HTTP_PORT} -... \ \ \ \ https: ${ALTERNATIVE_HTTPS_PORT} -... \ \ listenAddress: -... \ \ - br-ex ${ROUTER_TUNING_CONFIG} SEPARATOR=\n ... --- ... ingress: @@ -127,62 +92,6 @@ ${ROUTER_ERROR_CODE_CONFIGMAP} assets/network/router-error-configma *** Test Cases *** -Router Namespace Ownership - [Documentation] Test InterNamespaceAllow configuration options in - ... Router admission policy. - [Setup] Run Keywords - ... Setup Namespaces - ... Setup Hello MicroShift Pods In Multiple Namespaces - - Configure Namespace Ownership Strict - Wait Until Keyword Succeeds 60x 1s - ... Http Port Should Be Open ${HTTP_PORT} - ${result_1}= Run Keyword And Return Status - ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_1} - ${result_2}= Run Keyword And Return Status - ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_2} - IF (${result_1}==True and ${result_2}==True) or (${result_1}==False and ${result_2}==False) - Fail - END - - Configure Namespace Ownership Allowed - Wait Until Keyword Succeeds 60x 1s - ... Http Port Should Be Open ${HTTP_PORT} - Wait Until Keyword Succeeds 60x 2s - ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_1} - Wait Until Keyword Succeeds 60x 2s - ... Access Hello Microshift Success ${HTTP_PORT} path=/${NS_OWNERSHIP_2} - - [Teardown] Delete Namespaces - -Router Disabled - [Documentation] Disable the router and check the namespace does not exist. - [Setup] Disable Router - - Oc Wait namespace/openshift-ingress --for=delete --timeout=300s - - [Teardown] Run Keywords - ... Remove Custom Config - ... Restart MicroShift - ... Wait For Router Ready - -Router Exposure Configuration - [Documentation] Test custom ports and custom listening addresses. - [Setup] Run Keywords - ... Configure Router Exposure - ... Add Fake IP To NIC - - Wait Until Keyword Succeeds 60x 2s - ... Internal Router Port Should Be Open 10.44.0.0 ${ALTERNATIVE_HTTP_PORT} http - Wait Until Keyword Succeeds 60x 2s - ... Internal Router Port Should Be Open 10.44.0.0 ${ALTERNATIVE_HTTPS_PORT} https - # The link in which this IP was added was configured in MicroShift. Note the IP was - # added after MicroShift started, therefore it must pick it up dynamically. - Wait Until Keyword Succeeds 60x 2s - ... Internal Router Port Should Be Open ${FAKE_LISTEN_IP} ${ALTERNATIVE_HTTP_PORT} http - - [Teardown] Remove Fake IP From NIC - Router Verify Tuning Configuration [Documentation] Test ingress tuning configuration. [Setup] Run Keywords @@ -283,138 +192,6 @@ Router Verify Access Logging Configuration Syslog *** Keywords *** -Setup - [Documentation] Special setup for the suite. As every test case configures MicroShift in - ... different ways there is no need to restart before/after each one of them. Instead, store - ... the original configuration here to restore it at the end. - Setup Suite With Namespace - -Teardown - [Documentation] Special teardown for the suite, will finish off by restoring the original - ... configuration and restarting MicroShift. - Remove Custom Config - Restart MicroShift - Teardown Suite With Namespace - -Configure Namespace Ownership Allowed - [Documentation] Configure MicroShift to use InterNamespaceAllowed namespace ownership. - Setup With Custom Config ${OWNERSHIP_ALLOW} - Wait For Router Ready - -Configure Namespace Ownership Strict - [Documentation] Configure MicroShift to use Strict namespace ownership. - Setup With Custom Config ${OWNERSHIP_STRICT} - Wait For Router Ready - -Configure Router Exposure - [Documentation] Configure MicroShift to use Strict namespace ownership. - Setup With Custom Config ${ROUTER_EXPOSE_FULL} - Wait For Router Ready - -Disable Router - [Documentation] Disable router. - Setup With Custom Config ${ROUTER_REMOVED} - -Remove Custom Config - [Documentation] Remove custom config. - Remove Drop In MicroShift Config 10-ingress - -Wait For Router Ready - [Documentation] Wait for the default router to be ready. - # Wait for the namespace to be ready, as sometimes apiserver may signal readiness before all - # the manifests have been applied. - Oc Wait namespace/openshift-ingress --for jsonpath='{.status.phase}=Active' --timeout=5m - Named Deployment Should Be Available router-default openshift-ingress 5m - -Setup With Custom Config - [Documentation] Install a custom config and restart MicroShift. - [Arguments] ${config_content} - Drop In MicroShift Config ${config_content} 10-ingress - Restart MicroShift - -Setup Namespaces - [Documentation] Configure the required namespaces for namespace ownership tests. - VAR ${NS_OWNERSHIP_1}= ${NAMESPACE}-ownership-1 scope=SUITE - VAR ${NS_OWNERSHIP_2}= ${NAMESPACE}-ownership-2 scope=SUITE - Create Namespace ${NS_OWNERSHIP_1} - Create Namespace ${NS_OWNERSHIP_2} - -Delete Namespaces - [Documentation] Remove namespace ownership namespaces. - Remove Namespace ${NS_OWNERSHIP_1} - Remove Namespace ${NS_OWNERSHIP_2} - -Setup Hello MicroShift Pods In Multiple Namespaces - [Documentation] Create and expose hello microshift pods in two namespaces. - Create Hello MicroShift Pod ns=${NS_OWNERSHIP_1} - Create Hello MicroShift Pod ns=${NS_OWNERSHIP_2} - Expose Hello MicroShift ${NS_OWNERSHIP_1} - Expose Hello MicroShift ${NS_OWNERSHIP_2} - Oc Expose svc hello-microshift --hostname ${HOSTNAME} --path /${NS_OWNERSHIP_1} -n ${NS_OWNERSHIP_1} - Oc Expose svc hello-microshift --hostname ${HOSTNAME} --path /${NS_OWNERSHIP_2} -n ${NS_OWNERSHIP_2} - -Http Port Should Be Open - [Documentation] Connect to the router and expect a response using http. A 503 response means the router - ... is up but no routes are configured for the requested path. - [Arguments] ${port} - Access Hello MicroShift No Route ${port} - -Port Should Be Closed - [Documentation] Try to connect to the router and expect a failure when connecting. - [Arguments] ${port} - ${rc} ${ignore_out} ${ignore_err}= Access Hello MicroShift ${port} - # 7 is the error code for connection refused when using curl. - Should Be Equal As Integers ${rc} 7 - -Internal Router Port Should Be Open - [Documentation] Test whether the given router port is open from within MicroShift's host - ... using the given IP address. - [Arguments] ${router_ip} ${port} ${scheme}=http - ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command - ... curl -I -k ${scheme}://${router_ip}:${port} - ... sudo=False return_rc=True return_stderr=True return_stdout=True - Log Many ${stdout} ${stderr} - Should Be Equal As Integers 0 ${rc} - Should Match Regexp ${stdout} HTTP.*503 - -Add Fake IP To NIC - [Documentation] Add the given IP to the given NIC temporarily. - [Arguments] ${ip_address}=${FAKE_LISTEN_IP} ${nic_name}=br-ex - ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command - ... ip address add ${ip_address}/32 dev ${nic_name} - ... sudo=True return_rc=True return_stderr=True return_stdout=True - Log Many ${stdout} ${stderr} - Should Be Equal As Integers 0 ${rc} - -Remove Fake IP From NIC - [Documentation] Remove the given IP from the given NIC. - [Arguments] ${ip_address}=${FAKE_LISTEN_IP} ${nic_name}=br-ex - ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command - ... ip address delete ${ip_address}/32 dev ${nic_name} - ... sudo=True return_rc=True return_stderr=True return_stdout=True - Log Many ${stdout} ${stderr} - Should Be Equal As Integers 0 ${rc} - -Pod Environment Should Match Value - [Documentation] Check if config is Matching - [Arguments] ${name_space} ${env_name} ${expected_value} - ${is}= Oc Get JsonPath - ... pod - ... ${name_space} - ... ${EMPTY} - ... .items[*].spec.containers[*].env[?(@.name=="${env_name}")].value - Should Be Equal As Strings ${is} ${expected_value} - -Pod Volume Should Contain Secret - [Documentation] Check if pod volume exists by Name - [Arguments] ${name_space} ${volume_name} ${expected_value} - ${is}= Oc Get JsonPath - ... pod - ... ${name_space} - ... ${EMPTY} - ... .items[*].spec.volumes[?(@.name=="${volume_name}")].secret.secretName - Should Be Equal As Strings ${is} ${expected_value} - Create Custom Resources [Documentation] Copy Default certs to custom Run With Kubeconfig diff --git a/test/suites/router/router.resource b/test/suites/router/router.resource new file mode 100644 index 0000000000..c139588346 --- /dev/null +++ b/test/suites/router/router.resource @@ -0,0 +1,58 @@ +*** Settings *** +Documentation Shared keywords for router test suites + +Resource ../../resources/common.resource +Resource ../../resources/oc.resource +Resource ../../resources/ostree-health.resource +Resource ../../resources/microshift-network.resource +Resource ../../resources/microshift-config.resource + + +*** Keywords *** +Setup + [Documentation] Special setup for the suite. As every test case configures MicroShift in + ... different ways there is no need to restart before/after each one of them. Instead, store + ... the original configuration here to restore it at the end. + Setup Suite With Namespace + +Teardown + [Documentation] Special teardown for the suite, will finish off by restoring the original + ... configuration and restarting MicroShift. + Remove Custom Config + Restart MicroShift + Teardown Suite With Namespace + +Setup With Custom Config + [Documentation] Install a custom config and restart MicroShift. + [Arguments] ${config_content} + Drop In MicroShift Config ${config_content} 10-ingress + Restart MicroShift + +Remove Custom Config + [Documentation] Remove custom config. + Remove Drop In MicroShift Config 10-ingress + +Wait For Router Ready + [Documentation] Wait for the default router to be ready. + Oc Wait namespace/openshift-ingress --for jsonpath='{.status.phase}=Active' --timeout=5m + Named Deployment Should Be Available router-default openshift-ingress 5m + +Pod Environment Should Match Value + [Documentation] Check if config is Matching + [Arguments] ${name_space} ${env_name} ${expected_value} + ${is}= Oc Get JsonPath + ... pod + ... ${name_space} + ... ${EMPTY} + ... .items[*].spec.containers[*].env[?(@.name=="${env_name}")].value + Should Be Equal As Strings ${is} ${expected_value} + +Pod Volume Should Contain Secret + [Documentation] Check if pod volume exists by Name + [Arguments] ${name_space} ${volume_name} ${expected_value} + ${is}= Oc Get JsonPath + ... pod + ... ${name_space} + ... ${EMPTY} + ... .items[*].spec.volumes[?(@.name=="${volume_name}")].secret.secretName + Should Be Equal As Strings ${is} ${expected_value} From 08cc450db2a00974673592845b6a23e9cc59e055 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Fri, 3 Jul 2026 12:58:31 +0200 Subject: [PATCH 4/4] refactor: reorganize scenario directories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rename scenarios/ → scenarios-ostree/ to align with scenarios-bootc/ and scenarios-rpm/ naming convention. Split periodic scenarios into lifecycle and functional categories: - scenarios-ostree/periodics → periodics-lifecycle + periodics-functional - scenarios-bootc/el9/periodics → periodics-lifecycle + periodics-functional - scenarios-bootc/el10/periodics → periodics-lifecycle + periodics-functional Lifecycle: upgrades, rollbacks, backup/recovery, greenboot, auto-recovery Functional: config, storage, networking, optional, fips, osconfig Move bootc/ostree presubmit scenarios to periodic directories — these tests still run but as nightly periodics instead of per-PR presubmits. Delete old scenarios/presubmits/ and scenarios/periodics/ files that are superseded by RPM presubmit scenarios or moved to periodics. pre-commit.check-secrets: ENABLED --- .../el102-src@ai-model-serving-offline.sh | 0 .../el102-src@ai-model-serving-online.sh | 0 .../el102-src@c2cc.sh | 0 .../el102-src@cncf-conformance.sh | 0 .../el102-src@configuration1.sh | 0 .../el102-src@configuration2.sh | 0 ...-src@gitops-telemetry-clusterid-systemd.sh | 0 .../el102-src@isolated-net.sh | 0 .../el102-src@low-latency.sh | 0 .../el102-src@offline.sh | 0 .../el102-src@optional.sh | 0 .../el102-src@osconfig-cleanup-data.sh | 0 .../el102-src@osconfig-lifecycle-core-api.sh} | 1 + .../el102-src@standard-suite1.sh | 0 .../el102-src@standard-suite2.sh | 0 .../el102-src@storage.sh | 0 .../el102-src@auto-recovery.sh | 0 .../el102-src@backup-and-restore-on-reboot.sh | 0 .../el102-src@backups.sh | 0 .../el102-src@downgrade-block.sh | 0 .../el102-src@fault-tests-and-greenboot.sh | 0 .../el102-src@fips.sh.disabled | 0 .../el102-src@upgrade-fails-cannot-backup.sh | 0 .../el102-src@upgrade-fails.sh | 0 .../el96-prel@el102-src@upgrade-ok.sh | 0 ...-prel@el102-src@upgrade-ostree2bootc-ok.sh | 0 .../el96-yminus2@el102-src@upgrade-ok.sh | 0 ...inus2@el102-src@upgrade-ostree2bootc-ok.sh | 0 .../el98-src@el102-src@upgrade-ok.sh | 0 .../el102-src@osconfig-lifecycle-core-api.sh | 18 -- .../el10/presubmits/el102-src@dual-stack.sh | 16 -- .../el10/presubmits/el102-src@ipv6.sh | 29 ---- .../el10/presubmits/el102-src@multi-nic.sh | 24 --- .../el10/presubmits/el102-src@router.sh | 17 -- .../el10/presubmits/el102-src@rpm-install.sh | 157 ------------------ .../el98-src@el102-src@upgrade-ok.sh | 19 --- .../el98-src@ai-model-serving-offline.sh | 0 .../el98-src@ai-model-serving-online.sh | 0 .../el98-src@c2cc.sh | 0 .../el98-src@cncf-conformance.sh | 0 .../el98-src@configuration1.sh | 0 .../el98-src@configuration2.sh | 0 .../el98-src@fips.sh | 0 ...-src@gitops-telemetry-clusterid-systemd.sh | 0 .../el98-src@isolated-net.sh | 0 .../el98-src@low-latency.sh | 0 .../el98-src@offline.sh | 0 .../el98-src@optional.sh | 0 .../el98-src@osconfig-cleanup-data.sh | 0 .../el98-src@osconfig-lifecycle-core-api.sh | 0 .../el98-src@storage.sh | 0 ...l@el98-src@upgrade-fails-and-rolls-back.sh | 0 .../el96-prel@el98-src@upgrade-ok.sh | 0 ...6-prel@el98-src@upgrade-ostree2bootc-ok.sh | 0 .../el96-yminus2@el98-src@upgrade-ok.sh | 0 ...minus2@el98-src@upgrade-ostree2bootc-ok.sh | 0 .../el96-yminus2@prel@src@delta-upgrade-ok.sh | 0 .../el98-base@el98-src@upgrade-ok.sh | 0 .../el98-base@src@opt@delta-upgrade-ok.sh | 0 .../el98-src@auto-recovery.sh | 0 .../el98-src@backup-and-restore-on-reboot.sh | 0 .../el98-src@backups.sh | 0 .../el98-src@downgrade-block.sh | 0 .../el98-src@fault-tests-and-greenboot.sh | 0 .../el98-src@upgrade-fails-cannot-backup.sh | 0 ...rc@upgrade-fails-then-recovers.sh.disabled | 0 .../el98-src@upgrade-fails.sh | 0 .../el96-prel@el98-src@upgrade-ok.sh | 27 --- .../el96-yminus2@el98-src@upgrade-ok.sh | 19 --- .../el9/presubmits/el98-src@dual-stack.sh | 16 -- .../el9/presubmits/el98-src@ipv6.sh | 29 ---- .../el9/presubmits/el98-src@multi-nic.sh | 24 --- .../presubmits/el98-src@osconfig-lifecycle.sh | 19 --- .../el9/presubmits/el98-src@router.sh | 17 -- .../el9/presubmits/el98-src@rpm-install.sh | 120 ------------- .../presubmits/el98-src@standard-suite1.sh | 21 --- .../presubmits/el98-src@standard-suite2.sh | 16 -- .../el98-src@cncf-conformance.sh | 0 .../el98-src@configuration1.sh | 0 .../el98-src@dual-stack.sh | 0 .../el98-src@fips-rpm.sh | 0 .../periodics-functional}/el98-src@fips.sh | 0 .../el98-src@isolated-net.sh | 0 .../el98-src@low-latency.sh.disabled | 2 +- .../periodics-functional}/el98-src@offline.sh | 0 .../el98-src@optional.sh | 0 .../el98-src@osconfig-cleanup-data.sh | 0 .../el98-src@osconfig-misc.sh | 0 .../periodics-functional}/el98-src@router.sh | 0 .../el98-src@rpm-standard2.sh | 0 .../el98-src@standard-suite1.sh | 0 .../el98-src@standard-suite2.sh | 0 .../periodics-functional}/el98-src@storage.sh | 0 ...l@el98-src@upgrade-fails-and-rolls-back.sh | 0 .../el96-prel@el98-src@upgrade-ok.sh | 0 .../el96-yminus2@el98-src@upgrade-ok.sh | 0 .../el98-base@el98-src@upgrade-ok.sh | 0 .../el98-src@auto-recovery-rpm.sh | 0 .../el98-src@auto-recovery.sh | 0 .../el98-src@backup-and-restore-on-reboot.sh | 0 .../periodics-lifecycle}/el98-src@backups.sh | 0 .../el98-src@downgrade-block.sh | 0 .../el98-src@greenboot.sh | 0 .../el98-src@manual-rollback.sh | 0 .../el98-src@upgrade-fails-cannot-backup.sh | 0 ...rc@upgrade-fails-then-recovers.sh.disabled | 0 .../el98-src@upgrade-fails.sh | 0 .../el96-yminus1@el98-lrel@lvms-standard1.sh | 0 .../el96-yminus1@el98-lrel@lvms-standard2.sh | 0 .../el96-yminus2@el98-lrel@lvms-standard1.sh | 0 .../el96-yminus2@el98-lrel@lvms-standard2.sh | 0 .../releases/el98-lrel@backups.sh | 0 .../el98-lrel@dual-stack-configuration1.sh | 0 .../el98-lrel@dual-stack-configuration2.sh | 0 .../releases/el98-lrel@ginkgo-multi-config.sh | 0 .../releases/el98-lrel@ginkgo-tests.sh | 0 .../releases/el98-lrel@ipv6.sh | 0 .../releases/el98-lrel@iso-standard1.sh | 0 .../releases/el98-lrel@iso-standard2.sh | 0 .../el98-lrel@low-latency.sh.disabled | 0 .../releases/el98-lrel@multi-nic.sh | 0 .../releases/el98-lrel@optional.sh | 0 .../releases/el98-lrel@osconfig.sh | 0 .../releases/el98-lrel@otp-workloads.sh | 0 .../releases/el98-lrel@router.sh | 0 .../releases/el98-lrel@storage.sh | 0 ...98-zprel@el98-lrel@rpm-upgrade.sh.disabled | 0 .../releases/el98@rpm-standard1.sh | 0 .../releases/el98@rpm-standard2.sh | 0 .../releases/el98@rpm-upgrade.sh | 0 .../periodics/el98-src@configuration2.sh | 22 --- .../el98-src@osconfig-lifecycle-core-api.sh | 20 --- .../periodics/el98-src@rpm-standard1.sh | 18 -- .../el96-prel@el98-src@upgrade-ok.sh | 18 -- .../el96-yminus2@el98-src@upgrade-ok.sh | 18 -- .../presubmits/el98-src@configuration1.sh | 16 -- test/scenarios/presubmits/el98-src@ipv6.sh | 25 --- .../presubmits/el98-src@multi-nic.sh | 24 --- 138 files changed, 2 insertions(+), 750 deletions(-) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@ai-model-serving-offline.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-functional}/el102-src@ai-model-serving-online.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-functional}/el102-src@c2cc.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@cncf-conformance.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@configuration1.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@configuration2.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@gitops-telemetry-clusterid-systemd.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@isolated-net.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@low-latency.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@offline.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@optional.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@osconfig-cleanup-data.sh (100%) rename test/scenarios-bootc/el10/{periodics/el102-src@osconfig-lifecycle.sh => periodics-functional/el102-src@osconfig-lifecycle-core-api.sh} (94%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@standard-suite1.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-functional}/el102-src@standard-suite2.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-functional}/el102-src@storage.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-lifecycle}/el102-src@auto-recovery.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-lifecycle}/el102-src@backup-and-restore-on-reboot.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-lifecycle}/el102-src@backups.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-lifecycle}/el102-src@downgrade-block.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-lifecycle}/el102-src@fault-tests-and-greenboot.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-lifecycle}/el102-src@fips.sh.disabled (100%) rename test/scenarios-bootc/el10/{periodics => periodics-lifecycle}/el102-src@upgrade-fails-cannot-backup.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-lifecycle}/el102-src@upgrade-fails.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-lifecycle}/el96-prel@el102-src@upgrade-ok.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-lifecycle}/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh (100%) rename test/scenarios-bootc/el10/{presubmits => periodics-lifecycle}/el96-yminus2@el102-src@upgrade-ok.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-lifecycle}/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh (100%) rename test/scenarios-bootc/el10/{periodics => periodics-lifecycle}/el98-src@el102-src@upgrade-ok.sh (100%) delete mode 100644 test/scenarios-bootc/el10/periodics/el102-src@osconfig-lifecycle-core-api.sh delete mode 100644 test/scenarios-bootc/el10/presubmits/el102-src@dual-stack.sh delete mode 100644 test/scenarios-bootc/el10/presubmits/el102-src@ipv6.sh delete mode 100644 test/scenarios-bootc/el10/presubmits/el102-src@multi-nic.sh delete mode 100644 test/scenarios-bootc/el10/presubmits/el102-src@router.sh delete mode 100644 test/scenarios-bootc/el10/presubmits/el102-src@rpm-install.sh delete mode 100644 test/scenarios-bootc/el10/presubmits/el98-src@el102-src@upgrade-ok.sh rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@ai-model-serving-offline.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-functional}/el98-src@ai-model-serving-online.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-functional}/el98-src@c2cc.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@cncf-conformance.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@configuration1.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@configuration2.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@fips.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@gitops-telemetry-clusterid-systemd.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@isolated-net.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@low-latency.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@offline.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-functional}/el98-src@optional.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@osconfig-cleanup-data.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-functional}/el98-src@osconfig-lifecycle-core-api.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-functional}/el98-src@storage.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-lifecycle}/el96-prel@el98-src@upgrade-fails-and-rolls-back.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-lifecycle}/el96-prel@el98-src@upgrade-ok.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-lifecycle}/el96-prel@el98-src@upgrade-ostree2bootc-ok.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-lifecycle}/el96-yminus2@el98-src@upgrade-ok.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-lifecycle}/el96-yminus2@el98-src@upgrade-ostree2bootc-ok.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el96-yminus2@prel@src@delta-upgrade-ok.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-base@el98-src@upgrade-ok.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-base@src@opt@delta-upgrade-ok.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-src@auto-recovery.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-src@backup-and-restore-on-reboot.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-src@backups.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-src@downgrade-block.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-lifecycle}/el98-src@fault-tests-and-greenboot.sh (100%) rename test/scenarios-bootc/el9/{periodics => periodics-lifecycle}/el98-src@upgrade-fails-cannot-backup.sh (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-src@upgrade-fails-then-recovers.sh.disabled (100%) rename test/scenarios-bootc/el9/{presubmits => periodics-lifecycle}/el98-src@upgrade-fails.sh (100%) delete mode 100644 test/scenarios-bootc/el9/presubmits/el96-prel@el98-src@upgrade-ok.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el96-yminus2@el98-src@upgrade-ok.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@dual-stack.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@ipv6.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@multi-nic.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@osconfig-lifecycle.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@router.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@rpm-install.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@standard-suite1.sh delete mode 100644 test/scenarios-bootc/el9/presubmits/el98-src@standard-suite2.sh rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@cncf-conformance.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@configuration1.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-functional}/el98-src@dual-stack.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@fips-rpm.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@fips.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@isolated-net.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-functional}/el98-src@low-latency.sh.disabled (99%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@offline.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@optional.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@osconfig-cleanup-data.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@osconfig-misc.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-functional}/el98-src@router.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-functional}/el98-src@rpm-standard2.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-functional}/el98-src@standard-suite1.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-functional}/el98-src@standard-suite2.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-functional}/el98-src@storage.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-lifecycle}/el96-prel@el98-src@upgrade-fails-and-rolls-back.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-lifecycle}/el96-prel@el98-src@upgrade-ok.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-lifecycle}/el96-yminus2@el98-src@upgrade-ok.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-lifecycle}/el98-base@el98-src@upgrade-ok.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-lifecycle}/el98-src@auto-recovery-rpm.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-lifecycle}/el98-src@auto-recovery.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-lifecycle}/el98-src@backup-and-restore-on-reboot.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-lifecycle}/el98-src@backups.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-lifecycle}/el98-src@downgrade-block.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-lifecycle}/el98-src@greenboot.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-lifecycle}/el98-src@manual-rollback.sh (100%) rename test/{scenarios/periodics => scenarios-ostree/periodics-lifecycle}/el98-src@upgrade-fails-cannot-backup.sh (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-lifecycle}/el98-src@upgrade-fails-then-recovers.sh.disabled (100%) rename test/{scenarios/presubmits => scenarios-ostree/periodics-lifecycle}/el98-src@upgrade-fails.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el96-yminus1@el98-lrel@lvms-standard1.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el96-yminus1@el98-lrel@lvms-standard2.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el96-yminus2@el98-lrel@lvms-standard1.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el96-yminus2@el98-lrel@lvms-standard2.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@backups.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@dual-stack-configuration1.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@dual-stack-configuration2.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@ginkgo-multi-config.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@ginkgo-tests.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@ipv6.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@iso-standard1.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@iso-standard2.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@low-latency.sh.disabled (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@multi-nic.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@optional.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@osconfig.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@otp-workloads.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@router.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-lrel@storage.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98-zprel@el98-lrel@rpm-upgrade.sh.disabled (100%) rename test/{scenarios => scenarios-ostree}/releases/el98@rpm-standard1.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98@rpm-standard2.sh (100%) rename test/{scenarios => scenarios-ostree}/releases/el98@rpm-upgrade.sh (100%) delete mode 100644 test/scenarios/periodics/el98-src@configuration2.sh delete mode 100644 test/scenarios/periodics/el98-src@osconfig-lifecycle-core-api.sh delete mode 100644 test/scenarios/periodics/el98-src@rpm-standard1.sh delete mode 100644 test/scenarios/presubmits/el96-prel@el98-src@upgrade-ok.sh delete mode 100644 test/scenarios/presubmits/el96-yminus2@el98-src@upgrade-ok.sh delete mode 100644 test/scenarios/presubmits/el98-src@configuration1.sh delete mode 100644 test/scenarios/presubmits/el98-src@ipv6.sh delete mode 100644 test/scenarios/presubmits/el98-src@multi-nic.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@ai-model-serving-offline.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@ai-model-serving-offline.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@ai-model-serving-offline.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@ai-model-serving-offline.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@ai-model-serving-online.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@ai-model-serving-online.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@ai-model-serving-online.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@ai-model-serving-online.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@c2cc.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@c2cc.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@c2cc.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@c2cc.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@cncf-conformance.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@cncf-conformance.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@cncf-conformance.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@cncf-conformance.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@configuration1.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@configuration1.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@configuration1.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@configuration1.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@configuration2.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@configuration2.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@configuration2.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@configuration2.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@gitops-telemetry-clusterid-systemd.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@gitops-telemetry-clusterid-systemd.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@gitops-telemetry-clusterid-systemd.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@gitops-telemetry-clusterid-systemd.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@isolated-net.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@isolated-net.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@isolated-net.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@isolated-net.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@low-latency.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@low-latency.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@low-latency.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@low-latency.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@offline.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@offline.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@offline.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@offline.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@optional.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@optional.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@optional.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@optional.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@osconfig-cleanup-data.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@osconfig-cleanup-data.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@osconfig-cleanup-data.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@osconfig-cleanup-data.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@osconfig-lifecycle.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@osconfig-lifecycle-core-api.sh similarity index 94% rename from test/scenarios-bootc/el10/periodics/el102-src@osconfig-lifecycle.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@osconfig-lifecycle-core-api.sh index 369ddcd39f..2ad517f062 100644 --- a/test/scenarios-bootc/el10/periodics/el102-src@osconfig-lifecycle.sh +++ b/test/scenarios-bootc/el10/periodics-functional/el102-src@osconfig-lifecycle-core-api.sh @@ -14,6 +14,7 @@ scenario_remove_vms() { scenario_run_tests() { run_tests host1 \ suites/osconfig/lifecycle.robot \ + suites/core-api/ \ suites/otp-workloads/oc-cli.robot \ suites/otp-workloads/statefulset-pvc.robot } diff --git a/test/scenarios-bootc/el10/periodics/el102-src@standard-suite1.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@standard-suite1.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@standard-suite1.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@standard-suite1.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@standard-suite2.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@standard-suite2.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@standard-suite2.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@standard-suite2.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@storage.sh b/test/scenarios-bootc/el10/periodics-functional/el102-src@storage.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@storage.sh rename to test/scenarios-bootc/el10/periodics-functional/el102-src@storage.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@auto-recovery.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@auto-recovery.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@auto-recovery.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@auto-recovery.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@backup-and-restore-on-reboot.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@backup-and-restore-on-reboot.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@backup-and-restore-on-reboot.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@backup-and-restore-on-reboot.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@backups.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@backups.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@backups.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@backups.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@downgrade-block.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@downgrade-block.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@downgrade-block.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@downgrade-block.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@fault-tests-and-greenboot.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@fault-tests-and-greenboot.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@fault-tests-and-greenboot.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@fault-tests-and-greenboot.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@fips.sh.disabled b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@fips.sh.disabled similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@fips.sh.disabled rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@fips.sh.disabled diff --git a/test/scenarios-bootc/el10/periodics/el102-src@upgrade-fails-cannot-backup.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@upgrade-fails-cannot-backup.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el102-src@upgrade-fails-cannot-backup.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@upgrade-fails-cannot-backup.sh diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@upgrade-fails.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el102-src@upgrade-fails.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el102-src@upgrade-fails.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el102-src@upgrade-fails.sh diff --git a/test/scenarios-bootc/el10/presubmits/el96-prel@el102-src@upgrade-ok.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el96-prel@el102-src@upgrade-ok.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el96-prel@el102-src@upgrade-ok.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el96-prel@el102-src@upgrade-ok.sh diff --git a/test/scenarios-bootc/el10/periodics/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh diff --git a/test/scenarios-bootc/el10/presubmits/el96-yminus2@el102-src@upgrade-ok.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el96-yminus2@el102-src@upgrade-ok.sh similarity index 100% rename from test/scenarios-bootc/el10/presubmits/el96-yminus2@el102-src@upgrade-ok.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el96-yminus2@el102-src@upgrade-ok.sh diff --git a/test/scenarios-bootc/el10/periodics/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh diff --git a/test/scenarios-bootc/el10/periodics/el98-src@el102-src@upgrade-ok.sh b/test/scenarios-bootc/el10/periodics-lifecycle/el98-src@el102-src@upgrade-ok.sh similarity index 100% rename from test/scenarios-bootc/el10/periodics/el98-src@el102-src@upgrade-ok.sh rename to test/scenarios-bootc/el10/periodics-lifecycle/el98-src@el102-src@upgrade-ok.sh diff --git a/test/scenarios-bootc/el10/periodics/el102-src@osconfig-lifecycle-core-api.sh b/test/scenarios-bootc/el10/periodics/el102-src@osconfig-lifecycle-core-api.sh deleted file mode 100644 index 1f754f1573..0000000000 --- a/test/scenarios-bootc/el10/periodics/el102-src@osconfig-lifecycle-core-api.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel102-bootc-source - launch_vm rhel102-bootc -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - run_tests host1 \ - suites/osconfig/lifecycle.robot \ - suites/core-api/ -} diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@dual-stack.sh b/test/scenarios-bootc/el10/presubmits/el102-src@dual-stack.sh deleted file mode 100644 index 2a710777d2..0000000000 --- a/test/scenarios-bootc/el10/presubmits/el102-src@dual-stack.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel102-bootc-source - launch_vm rhel102-bootc --network "${VM_DUAL_STACK_NETWORK}" -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - run_tests host1 suites/ipv6/dualstack.robot -} diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@ipv6.sh b/test/scenarios-bootc/el10/presubmits/el102-src@ipv6.sh deleted file mode 100644 index 95e3257480..0000000000 --- a/test/scenarios-bootc/el10/presubmits/el102-src@ipv6.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -# Redefine network-related settings to use the dedicated IPv6 network bridge -# shellcheck disable=SC2034 # used elsewhere -VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_IPV6_NETWORK}")" -# shellcheck disable=SC2034 # used elsewhere -WEB_SERVER_URL="http://[${VM_BRIDGE_IP}]:${WEB_SERVER_PORT}" -# Using `hostname` here instead of a raw ip because skopeo only allows either -# ipv4 or fqdn's, but not ipv6. Since the registry is hosted on the ipv6 -# network gateway in the host, we need to use a combination of the hostname -# plus /etc/hosts resolution (which is taken care of by kickstart). -# shellcheck disable=SC2034 # used elsewhere -MIRROR_REGISTRY_URL="$(hostname):${MIRROR_REGISTRY_PORT}/microshift" - -scenario_create_vms() { - # Enable IPv6 single stack in kickstart - prepare_kickstart host1 kickstart-bootc.ks.template rhel102-bootc-source false true - launch_vm rhel102-bootc --network "${VM_IPV6_NETWORK}" -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - run_tests host1 suites/ipv6/singlestack.robot -} diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@multi-nic.sh b/test/scenarios-bootc/el10/presubmits/el102-src@multi-nic.sh deleted file mode 100644 index 260ded8984..0000000000 --- a/test/scenarios-bootc/el10/presubmits/el102-src@multi-nic.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel102-bootc-source - # Using multus as secondary network to have 2 nics in different networks. - launch_vm rhel102-bootc --network default,"${VM_MULTUS_NETWORK}" -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - local -r vmname=$(full_vm_name host1) - local -r vm_ip1=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | head -1) - local -r vm_ip2=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | tail -1) - - run_tests host1 \ - --variable "USHIFT_HOST_IP1:${vm_ip1}" \ - --variable "USHIFT_HOST_IP2:${vm_ip2}" \ - suites/network/multi-nic.robot -} diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@router.sh b/test/scenarios-bootc/el10/presubmits/el102-src@router.sh deleted file mode 100644 index 5185849f03..0000000000 --- a/test/scenarios-bootc/el10/presubmits/el102-src@router.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel102-bootc-source - launch_vm rhel102-bootc -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - run_tests host1 \ - suites/router -} diff --git a/test/scenarios-bootc/el10/presubmits/el102-src@rpm-install.sh b/test/scenarios-bootc/el10/presubmits/el102-src@rpm-install.sh deleted file mode 100644 index 6681535648..0000000000 --- a/test/scenarios-bootc/el10/presubmits/el102-src@rpm-install.sh +++ /dev/null @@ -1,157 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -# The RPM-based image used to create the VM for this test does not -# include MicroShift or greenboot, so tell the framework not to wait -# for greenboot to finish when creating the VM. -export SKIP_GREENBOOT=true - -# NOTE: Unlike most suites, these tests rely on being run IN ORDER to -# ensure the host is in a good state at the start of each test. We -# could have separated them and run them as separate scenarios, but -# did not want to spend the resources on a new VM. -export TEST_RANDOMIZATION=none - -configure_microshift_mirror() { - local -r repo=$1 - - # `repo` might be empty if we install microshift from rhocp - if [[ -z "${repo}" ]] ; then - return - fi - - # `repo` might be an enabled repo from a released version instead - # of a mirror. - if [[ ! "${repo}" =~ ^http ]]; then - return - fi - - local -r tmp_file=$(mktemp) - tee "${tmp_file}" >/dev/null </dev/null </dev/null </dev/null </dev/null <