Skip to content

Commit 640517c

Browse files
committed
USHIFT-6073: Add Z-1 upgrade path for release testing scenarios
This PR adds the capability to test Z-stream upgrades (e.g., 4.22.0 -> 4.22.7) in addition to the existing Y-stream upgrade tests (e.g., 4.21 -> 4.22). Changes include: - Add PREV_ZSTREAM version variables for tracking the first/previous z-stream of the current minor release - Add bootc containerfile and scenario files for Z-1 upgrade testing - Rename variables from confusing Y0/Z1/Y1/Y2 pattern to clearer naming: - LATEST_ZSTREAM_VERSION: Latest z-stream of current minor - PREV_ZSTREAM_VERSION: Previous z-stream of current minor (Z-1 upgrade source) - YMINUS1_VERSION: Latest z-stream of Y-1 minor - YMINUS2_VERSION: Latest z-stream of Y-2 minor - Add documentation comments explaining the version naming convention rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED
1 parent 1fa72c2 commit 640517c

18 files changed

+371
-88
lines changed

test/assets/common_versions.sh.template

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -142,22 +142,40 @@ export CNCF_SYSTEMD_LOGS_VERSION={CNCF_SYSTEMD_LOGS_VERSION}
142142
export GITOPS_VERSION={GITOPS_VERSION}
143143

144144
# The brew release versions needed for release regression testing
145-
BREW_Y0_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-zstream/{ARCH}/")"
146-
BREW_Y1_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{PREVIOUS_MINOR_VERSION}}-zstream/{ARCH}/")"
147-
BREW_Y2_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{YMINUS2_MINOR_VERSION}}-zstream/{ARCH}/")"
148-
BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-rc/{ARCH}/")"
149-
BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-ec/{ARCH}/")"
150-
BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-nightly/{ARCH}/")"
151-
export BREW_Y0_RELEASE_VERSION
152-
export BREW_Y1_RELEASE_VERSION
153-
export BREW_Y2_RELEASE_VERSION
145+
#
146+
# Version naming convention (for X.Y.Z format where X=major, Y=minor, Z=patch):
147+
# - LATEST_ZSTREAM: Latest z-stream of current minor (e.g., 4.22.7) - for current release testing
148+
# - PREV_ZSTREAM: Previous z-stream of current minor (e.g., 4.22.0) - for Z-1 upgrade testing
149+
# - YMINUS1: Latest z-stream of previous minor (e.g., 4.21.26) - for Y-1 upgrade testing
150+
# - YMINUS2: Latest z-stream of Y-2 minor (e.g., 4.20.44) - for Y-2 upgrade testing
151+
#
152+
LATEST_ZSTREAM_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
153+
PREV_ZSTREAM_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | head -n1 || echo "")"
154+
YMINUS1_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{PREVIOUS_MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
155+
YMINUS2_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{YMINUS2_MINOR_VERSION}}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
156+
RC_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]*-rc$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
157+
EC_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]*-ec$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
158+
NIGHTLY_VERSION="$(find "${{BREW_RPM_SOURCE}}" -maxdepth 1 -type d -regex ".*/[45]\.${{MINOR_VERSION}}\.[0-9]*-nightly$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
159+
160+
BREW_LATEST_ZSTREAM_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{LATEST_ZSTREAM_VERSION}}/{ARCH}/")"
161+
BREW_PREV_ZSTREAM_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{PREV_ZSTREAM_VERSION}}/{ARCH}/")"
162+
BREW_YMINUS1_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{YMINUS1_VERSION}}/{ARCH}/")"
163+
BREW_YMINUS2_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{YMINUS2_VERSION}}/{ARCH}/")"
164+
BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{RC_VERSION}}/{ARCH}/")"
165+
BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{EC_VERSION}}/{ARCH}/")"
166+
BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/${{NIGHTLY_VERSION}}/{ARCH}/")"
167+
168+
export BREW_LATEST_ZSTREAM_VERSION
169+
export BREW_PREV_ZSTREAM_VERSION
170+
export BREW_YMINUS1_VERSION
171+
export BREW_YMINUS2_VERSION
154172
export BREW_RC_RELEASE_VERSION
155173
export BREW_EC_RELEASE_VERSION
156174
export BREW_NIGHTLY_RELEASE_VERSION
157175

158176
# Set the release type based on priority: zstream > RC > EC > nightly
159-
if [ -n "${{BREW_Y0_RELEASE_VERSION}}" ]; then
160-
BREW_LREL_RELEASE_VERSION="${{BREW_Y0_RELEASE_VERSION}}"
177+
if [ -n "${{BREW_LATEST_ZSTREAM_VERSION}}" ]; then
178+
BREW_LREL_RELEASE_VERSION="${{BREW_LATEST_ZSTREAM_VERSION}}"
161179
elif [ -n "${{BREW_RC_RELEASE_VERSION}}" ]; then
162180
BREW_LREL_RELEASE_VERSION="${{BREW_RC_RELEASE_VERSION}}"
163181
elif [ -n "${{BREW_EC_RELEASE_VERSION}}" ]; then

test/bin/build_images.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -721,9 +721,9 @@ if ${EXTRACT_CONTAINER_IMAGES}; then
721721
extract_container_images "${PREVIOUS_RELEASE_VERSION}" "${PREVIOUS_RELEASE_REPO}" "${CONTAINER_LIST}"
722722
extract_container_images "${YMINUS2_RELEASE_VERSION}" "${YMINUS2_RELEASE_REPO}" "${CONTAINER_LIST}"
723723
# The following images are specific to the brew release versions.
724-
[ -n "${BREW_Y0_RELEASE_VERSION}" ] && extract_container_images "${BREW_Y0_RELEASE_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
725-
[ -n "${BREW_Y1_RELEASE_VERSION}" ] && extract_container_images "${BREW_Y1_RELEASE_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
726-
[ -n "${BREW_Y2_RELEASE_VERSION}" ] && extract_container_images "${BREW_Y2_RELEASE_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
724+
[ -n "${BREW_LATEST_ZSTREAM_VERSION}" ] && extract_container_images "${BREW_LATEST_ZSTREAM_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
725+
[ -n "${BREW_YMINUS1_VERSION}" ] && extract_container_images "${BREW_YMINUS1_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
726+
[ -n "${BREW_YMINUS2_VERSION}" ] && extract_container_images "${BREW_YMINUS2_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
727727
[ -n "${BREW_RC_RELEASE_VERSION}" ] && extract_container_images "${BREW_RC_RELEASE_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
728728
[ -n "${BREW_EC_RELEASE_VERSION}" ] && extract_container_images "${BREW_EC_RELEASE_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"
729729
[ -n "${BREW_NIGHTLY_RELEASE_VERSION}" ] && extract_container_images "${BREW_NIGHTLY_RELEASE_VERSION}" "${BREW_REPO}" "${CONTAINER_LIST}"

test/bin/build_rpms.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,12 @@ download_brew_rpms() {
121121
rm -rf "${BREW_RPM_SOURCE}"
122122
# Run the download procedure
123123
bash -x "${SCRIPTDIR}/../../scripts/fetch_tools.sh" brew
124-
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || true
125-
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${PREVIOUS_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || true
126-
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${YMINUS2_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || true
127-
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "rc" || true
128-
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "ec" || true
129-
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "nightly" || true
124+
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "rc" || echo "WARNING: Failed to download RC RPMs for 4.${MINOR_VERSION}"
125+
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "ec" || echo "WARNING: Failed to download EC RPMs for 4.${MINOR_VERSION}"
126+
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || echo "WARNING: Failed to download zstream RPMs for 4.${MINOR_VERSION}"
127+
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${MINOR_VERSION}" "${BREW_RPM_SOURCE}" "nightly" || echo "WARNING: Failed to download nightly RPMs for 4.${MINOR_VERSION}"
128+
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${PREVIOUS_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || echo "WARNING: Failed to download zstream RPMs for 4.${PREVIOUS_MINOR_VERSION}"
129+
bash -x "${SCRIPTDIR}/manage_brew_rpms.sh" download "4.${YMINUS2_MINOR_VERSION}" "${BREW_RPM_SOURCE}" "zstream" || ( echo "WARNING: Failed to download zstream RPMs for 4.${YMINUS2_MINOR_VERSION}" && return 1 )
130130
else
131131
echo "WARNING: The Brew Hub site is not accessible, skipping the download"
132132
fi

test/bin/common.sh

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,8 @@ MICROSHIFT_MANDATORY_RPMS_LIST=(
370370
microshift
371371
microshift-release-info
372372
)
373+
374+
## Optional RPMs
373375
MICROSHIFT_Y2_OPTIONAL_RPMS_LIST=(
374376
microshift-olm
375377
microshift-olm-release-info
@@ -387,24 +389,36 @@ MICROSHIFT_Y1_OPTIONAL_RPMS_LIST=(
387389
microshift-sriov
388390
microshift-sriov-release-info
389391
)
390-
MICROSHIFT_OPTIONAL_RPMS_LIST=(
392+
MICROSHIFT_PREV_ZSTREAM_OPTIONAL_RPMS_LIST=(
391393
"${MICROSHIFT_Y1_OPTIONAL_RPMS_LIST[@]}"
392394
)
395+
MICROSHIFT_OPTIONAL_RPMS_LIST=(
396+
"${MICROSHIFT_PREV_ZSTREAM_OPTIONAL_RPMS_LIST[@]}"
397+
)
398+
399+
## x86_64 RPMs
393400
MICROSHIFT_Y2_X86_64_RPMS_LIST=(
394401
microshift-ai-model-serving
395402
microshift-ai-model-serving-release-info
396403
)
397404
MICROSHIFT_Y1_X86_64_RPMS_LIST=(
398405
"${MICROSHIFT_Y2_X86_64_RPMS_LIST[@]}"
399406
)
407+
MICROSHIFT_PREV_ZSTREAM_X86_64_RPMS_LIST=(
408+
"${MICROSHIFT_Y2_X86_64_RPMS_LIST[@]}"
409+
)
400410
MICROSHIFT_X86_64_RPMS_LIST=(
401-
"${MICROSHIFT_Y1_X86_64_RPMS_LIST[@]}"
411+
"${MICROSHIFT_PREV_ZSTREAM_X86_64_RPMS_LIST[@]}"
402412
)
403413

404414
export MICROSHIFT_MANDATORY_RPMS="${MICROSHIFT_MANDATORY_RPMS_LIST[*]}"
415+
405416
export MICROSHIFT_Y2_OPTIONAL_RPMS="${MICROSHIFT_Y2_OPTIONAL_RPMS_LIST[*]}"
406417
export MICROSHIFT_Y1_OPTIONAL_RPMS="${MICROSHIFT_Y1_OPTIONAL_RPMS_LIST[*]}"
418+
export MICROSHIFT_PREV_ZSTREAM_OPTIONAL_RPMS="${MICROSHIFT_PREV_ZSTREAM_OPTIONAL_RPMS_LIST[*]}"
407419
export MICROSHIFT_OPTIONAL_RPMS="${MICROSHIFT_OPTIONAL_RPMS_LIST[*]}"
420+
408421
export MICROSHIFT_Y2_X86_64_RPMS="${MICROSHIFT_Y2_X86_64_RPMS_LIST[*]}"
409422
export MICROSHIFT_Y1_X86_64_RPMS="${MICROSHIFT_Y1_X86_64_RPMS_LIST[*]}"
423+
export MICROSHIFT_PREV_ZSTREAM_X86_64_RPMS="${MICROSHIFT_PREV_ZSTREAM_X86_64_RPMS_LIST[*]}"
410424
export MICROSHIFT_X86_64_RPMS="${MICROSHIFT_X86_64_RPMS_LIST[*]}"

test/bin/common_versions.sh

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -142,22 +142,40 @@ export CNCF_SYSTEMD_LOGS_VERSION=v0.4
142142
export GITOPS_VERSION=1.16
143143

144144
# The brew release versions needed for release regression testing
145-
BREW_Y0_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-zstream/${UNAME_M}/")"
146-
BREW_Y1_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${PREVIOUS_MINOR_VERSION}-zstream/${UNAME_M}/")"
147-
BREW_Y2_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${YMINUS2_MINOR_VERSION}-zstream/${UNAME_M}/")"
148-
BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-rc/${UNAME_M}/")"
149-
BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-ec/${UNAME_M}/")"
150-
BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-nightly/${UNAME_M}/")"
151-
export BREW_Y0_RELEASE_VERSION
152-
export BREW_Y1_RELEASE_VERSION
153-
export BREW_Y2_RELEASE_VERSION
145+
#
146+
# Version naming convention (for X.Y.Z format where X=major, Y=minor, Z=patch):
147+
# - LATEST_ZSTREAM: Latest z-stream of current minor (e.g., 4.22.7) - for current release testing
148+
# - PREV_ZSTREAM: Previous z-stream of current minor (e.g., 4.22.4) - for Z-1 upgrade testing
149+
# - YMINUS1: Latest z-stream of previous minor (e.g., 4.21.26) - for Y-1 upgrade testing
150+
# - YMINUS2: Latest z-stream of Y-2 minor (e.g., 4.20.44) - for Y-2 upgrade testing
151+
#
152+
LATEST_ZSTREAM_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
153+
PREV_ZSTREAM_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | head -n1 || echo "")"
154+
YMINUS1_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${PREVIOUS_MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
155+
YMINUS2_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${YMINUS2_MINOR_VERSION}\.[0-9]+$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
156+
RC_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]*-rc$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
157+
EC_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]*-ec$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
158+
NIGHTLY_VERSION="$(find "${BREW_RPM_SOURCE}" -maxdepth 1 -type d -regex ".*/[45]\.${MINOR_VERSION}\.[0-9]*-nightly$" -printf '%f\n' | sort -V | tail -n1 || echo "")"
159+
160+
BREW_LATEST_ZSTREAM_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${LATEST_ZSTREAM_VERSION}/${UNAME_M}/")"
161+
BREW_PREV_ZSTREAM_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${PREV_ZSTREAM_VERSION}/${UNAME_M}/")"
162+
BREW_YMINUS1_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${YMINUS1_VERSION}/${UNAME_M}/")"
163+
BREW_YMINUS2_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${YMINUS2_VERSION}/${UNAME_M}/")"
164+
BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${RC_VERSION}/${UNAME_M}/")"
165+
BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${EC_VERSION}/${UNAME_M}/")"
166+
BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/${NIGHTLY_VERSION}/${UNAME_M}/")"
167+
168+
export BREW_LATEST_ZSTREAM_VERSION
169+
export BREW_PREV_ZSTREAM_VERSION
170+
export BREW_YMINUS1_VERSION
171+
export BREW_YMINUS2_VERSION
154172
export BREW_RC_RELEASE_VERSION
155173
export BREW_EC_RELEASE_VERSION
156174
export BREW_NIGHTLY_RELEASE_VERSION
157175

158176
# Set the release type based on priority: zstream > RC > EC > nightly
159-
if [ -n "${BREW_Y0_RELEASE_VERSION}" ]; then
160-
BREW_LREL_RELEASE_VERSION="${BREW_Y0_RELEASE_VERSION}"
177+
if [ -n "${BREW_LATEST_ZSTREAM_VERSION}" ]; then
178+
BREW_LREL_RELEASE_VERSION="${BREW_LATEST_ZSTREAM_VERSION}"
161179
elif [ -n "${BREW_RC_RELEASE_VERSION}" ]; then
162180
BREW_LREL_RELEASE_VERSION="${BREW_RC_RELEASE_VERSION}"
163181
elif [ -n "${BREW_EC_RELEASE_VERSION}" ]; then

0 commit comments

Comments
 (0)