Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash

# Sourced from scenario.sh and uses functions defined there.

# NOTE: Unlike most suites, these tests rely on being run IN ORDER to
# ensure MicroShift is upgraded before running validation tests
export TEST_RANDOMIZATION=none

# Add extra timeout because it runs both standard1 and standard2 suites.
export TEST_EXECUTION_TIMEOUT=60m

start_image="rhel102-bootc-brew-y1-with-optional"
dest_image="rhel102-bootc-brew-lrel-optional"

scenario_create_vms() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}"
launch_vm rhel102-bootc --vm_disksize 30 --vm_vcpus 4
}

scenario_remove_vms() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

remove_vm host1
}

scenario_run_tests() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

# Wait for MicroShift to be ready
wait_for_microshift_to_be_ready host1

# Setup oc client and kubeconfig for ginkgo tests
setup_oc_and_kubeconfig host1

# Pre-upgrade: Create LVMS workloads and validate LVMS is working
echo "INFO: Creating LVMS workloads before upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/createWorkloads.sh"

echo "INFO: Checking LVMS resources before upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkLvmsResources.sh"

# Perform upgrade and validate
run_tests host1 \
--variable "TARGET_REF:${dest_image}" \
--variable "BOOTC_REGISTRY:${MIRROR_REGISTRY_URL}" \
suites/upgrade/upgrade-successful.robot

# Post-upgrade: Validate LVMS workloads survived the upgrade
echo "INFO: Checking LVMS workloads survived upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkWorkloadExists.sh"

echo "INFO: Checking LVMS resources after upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkLvmsResources.sh"

# Cleanup LVMS workloads
echo "INFO: Cleaning up LVMS workloads..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/cleanupWorkload.sh"

# Run standard1 and standard2 suites for basic validation after upgrade
run_tests host1 \
--variable "EXPECTED_OS_VERSION:10.2" \
suites/standard1/ \
suites/standard2/
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#!/bin/bash
Comment thread
coderabbitai[bot] marked this conversation as resolved.

# 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

# Add extra timeout because it runs both standard1 and standard2 suites.
export TEST_EXECUTION_TIMEOUT=60m

scenario_create_vms() {
exit_if_brew_rpms_not_found

prepare_kickstart host1 kickstart-liveimg.ks.template ""
launch_vm rhel102-installer

# Open the firewall ports. Other scenarios get this behavior by
# embedding settings in the blueprint, but there is no blueprint
# for this scenario. We need do this step before running the RF
# suite so that suite can assume it can reach all of the same
# ports as for any other test.
configure_vm_firewall host1

# Register the host with subscription manager so we can install
# dependencies.
subscription_manager_register host1
}

scenario_remove_vms() {
exit_if_brew_rpms_not_found

remove_vm host1
}

scenario_run_tests() {
exit_if_brew_rpms_not_found

local -r reponame=$(basename "${BREW_REPO}")
Comment thread
agullon marked this conversation as resolved.
local -r repo_url="${WEB_SERVER_URL}/rpm-repos/${reponame}"

# Enable the rhocp and dependency repositories.
#
# Note that rhocp or beta dependencies repository may not yet exist
# for the current version. Then, just use whatever we can get for
# the previous minor version.
configure_rhocp_repo "${RHOCP_MINOR_Y}" "${MAJOR_VERSION}" "${MINOR_VERSION}"
configure_rhocp_repo "${RHOCP_MINOR_Y_BETA}" "${MAJOR_VERSION}" "${MINOR_VERSION}"
configure_rhocp_repo "${RHOCP_MINOR_Y1}" "${PREVIOUS_MAJOR_VERSION}" "${PREVIOUS_MINOR_VERSION}"
configure_rhocp_repo "${RHOCP_MINOR_Y1_BETA}" "${PREVIOUS_MAJOR_VERSION}" "${PREVIOUS_MINOR_VERSION}"
configure_microshift_mirror "${PREVIOUS_RELEASE_REPO}"
run_command_on_vm host1 "sudo subscription-manager release --set 10.2"
configure_fast_datapath_repo

# Install the previous version, upgrade to the current version,
# then run LVMS validation and standard test suites.
run_tests host1 \
--exitonfailure \
--variable "SOURCE_REPO_URL:${repo_url}" \
--variable "TARGET_VERSION:${BREW_LREL_RELEASE_VERSION}" \
--variable "PREVIOUS_MINOR_VERSION:${PREVIOUS_MINOR_VERSION}" \
suites/rpm/upgrade-successful.robot

# Setup oc client and kubeconfig for ginkgo tests
setup_oc_and_kubeconfig host1

# Post-upgrade: Create LVMS workloads and validate LVMS is working
echo "INFO: Creating LVMS workloads after upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/createWorkloads.sh"

echo "INFO: Checking LVMS resources..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkLvmsResources.sh"

# Cleanup LVMS workloads
echo "INFO: Cleaning up LVMS workloads..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/cleanupWorkload.sh"

# Run standard1 and standard2 suites for basic validation
run_tests host1 \
--variable "EXPECTED_OS_VERSION:10.2" \
suites/standard1/ \
suites/standard2/
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash

# Sourced from scenario.sh and uses functions defined there.

# NOTE: Unlike most suites, these tests rely on being run IN ORDER to
# ensure MicroShift is upgraded before running validation tests
export TEST_RANDOMIZATION=none

# Add extra timeout because it runs both standard1 and standard2 suites.
export TEST_EXECUTION_TIMEOUT=60m

start_image="rhel98-bootc-brew-y1-with-optional"
dest_image="rhel102-bootc-brew-lrel-optional"

scenario_create_vms() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}"
launch_vm rhel98-bootc --vm_disksize 30 --vm_vcpus 4
}

scenario_remove_vms() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

remove_vm host1
}

scenario_run_tests() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

# Wait for MicroShift to be ready
wait_for_microshift_to_be_ready host1

# Setup oc client and kubeconfig for ginkgo tests
setup_oc_and_kubeconfig host1

# Pre-upgrade: Create LVMS workloads and validate LVMS is working
echo "INFO: Creating LVMS workloads before upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/createWorkloads.sh"

echo "INFO: Checking LVMS resources before upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkLvmsResources.sh"

# Perform upgrade and validate
run_tests host1 \
--variable "TARGET_REF:${dest_image}" \
--variable "BOOTC_REGISTRY:${MIRROR_REGISTRY_URL}" \
suites/upgrade/upgrade-successful.robot

# Post-upgrade: Validate LVMS workloads survived the upgrade
echo "INFO: Checking LVMS workloads survived upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkWorkloadExists.sh"

echo "INFO: Checking LVMS resources after upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkLvmsResources.sh"

# Cleanup LVMS workloads
echo "INFO: Cleaning up LVMS workloads..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/cleanupWorkload.sh"

# Run standard1 and standard2 suites for basic validation after upgrade
run_tests host1 \
--variable "EXPECTED_OS_VERSION:10.2" \
suites/standard1/ \
suites/standard2/
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash

# Sourced from scenario.sh and uses functions defined there.

# NOTE: Unlike most suites, these tests rely on being run IN ORDER to
# ensure MicroShift is upgraded before running validation tests
export TEST_RANDOMIZATION=none

# Add extra timeout because it runs both standard1 and standard2 suites.
export TEST_EXECUTION_TIMEOUT=60m

start_image="rhel98-bootc-brew-y2-with-optional"
dest_image="rhel102-bootc-brew-lrel-optional"

scenario_create_vms() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}"
launch_vm rhel98-bootc --vm_disksize 30 --vm_vcpus 4
}

scenario_remove_vms() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

remove_vm host1
}

scenario_run_tests() {
exit_if_image_not_found "${start_image}"
exit_if_image_not_found "${dest_image}"

# Wait for MicroShift to be ready
wait_for_microshift_to_be_ready host1

# Setup oc client and kubeconfig for ginkgo tests
setup_oc_and_kubeconfig host1

# Pre-upgrade: Create LVMS workloads and validate LVMS is working
echo "INFO: Creating LVMS workloads before upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/createWorkloads.sh"

echo "INFO: Checking LVMS resources before upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkLvmsResources.sh"

# Perform upgrade and validate
run_tests host1 \
--variable "TARGET_REF:${dest_image}" \
--variable "BOOTC_REGISTRY:${MIRROR_REGISTRY_URL}" \
suites/upgrade/upgrade-successful.robot

# Post-upgrade: Validate LVMS workloads survived the upgrade
echo "INFO: Checking LVMS workloads survived upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkWorkloadExists.sh"

echo "INFO: Checking LVMS resources after upgrade..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/checkLvmsResources.sh"

# Cleanup LVMS workloads
echo "INFO: Cleaning up LVMS workloads..."
run_command_on_vm host1 'bash -s' < "${TESTDIR}/../scripts/lvms-helpers/cleanupWorkload.sh"

# Run standard1 and standard2 suites for basic validation after upgrade
run_tests host1 \
--variable "EXPECTED_OS_VERSION:10.2" \
suites/standard1/ \
suites/standard2/
}