@@ -196,6 +196,23 @@ function configure_rhel_repositories() {
196196 # Extract major version from Makefile.version
197197 local -r ocp_major=" $( grep ' ^OCP_VERSION' " ${MAKE_VERSION} " | cut -d' =' -f2 | tr -d ' ' | cut -d' .' -f1) "
198198
199+ # Map of last minor version for each major (for cross-major transitions)
200+ local -A last_minor_for_major=([4]=22)
201+
202+ # Calculate previous version handling cross-major boundaries
203+ # Sets prev_major and prev_minor variables
204+ get_prev_version () {
205+ local major=$1
206+ local minor=$2
207+ if (( minor > 0 )) ; then
208+ prev_major=" ${major} "
209+ prev_minor=$(( minor - 1 ))
210+ else
211+ prev_major=$(( major - 1 ))
212+ prev_minor=" ${last_minor_for_major[${prev_major}]:- } "
213+ fi
214+ }
215+
199216 RHOCP=$( " ${RHOCP_REPO} " )
200217 if [[ " ${RHOCP} " =~ ^[0-9]{1,2}$ ]]; then
201218 sudo subscription-manager repos --enable " rhocp-${ocp_major} .${RHOCP} -for-rhel-9-$( uname -m) -rpms"
@@ -211,14 +228,21 @@ enabled=1
211228gpgcheck=0
212229skip_if_unavailable=0
213230EOF
214- PREVIOUS_RHOCP=$( " ${RHOCP_REPO} " $(( ver- 1 )) )
215- if [[ " ${PREVIOUS_RHOCP} " =~ ^[0-9]{1,2}$ ]]; then
216- sudo subscription-manager repos --enable " rhocp-${ocp_major} .${PREVIOUS_RHOCP} -for-rhel-9-$( uname -m) -rpms"
217- else
218- # If RHOCP Y-1 is not available, try RHOCP Y-2.
219- Y2_RHOCP=$( " ${RHOCP_REPO} " $(( ver- 2 )) )
220- if [[ " ${Y2_RHOCP} " =~ ^[0-9]{1,2}$ ]]; then
221- sudo subscription-manager repos --enable " rhocp-${ocp_major} .${Y2_RHOCP} -for-rhel-9-$( uname -m) -rpms"
231+ # Calculate Y-1 version
232+ get_prev_version " ${ocp_major} " " ${ver} "
233+ if [[ -n " ${prev_minor} " ]]; then
234+ PREVIOUS_RHOCP=$( " ${RHOCP_REPO} " " ${prev_minor} " )
235+ if [[ " ${PREVIOUS_RHOCP} " =~ ^[0-9]{1,2}$ ]]; then
236+ sudo subscription-manager repos --enable " rhocp-${prev_major} .${PREVIOUS_RHOCP} -for-rhel-9-$( uname -m) -rpms"
237+ else
238+ # If RHOCP Y-1 is not available, try RHOCP Y-2.
239+ get_prev_version " ${prev_major} " " ${prev_minor} "
240+ if [[ -n " ${prev_minor} " ]]; then
241+ Y2_RHOCP=$( " ${RHOCP_REPO} " " ${prev_minor} " )
242+ if [[ " ${Y2_RHOCP} " =~ ^[0-9]{1,2}$ ]]; then
243+ sudo subscription-manager repos --enable " rhocp-${prev_major} .${Y2_RHOCP} -for-rhel-9-$( uname -m) -rpms"
244+ fi
245+ fi
222246 fi
223247 fi
224248 fi
@@ -280,7 +304,7 @@ function install_openshift_clients() {
280304 OCP_MINOR=" $( grep ' ^OCP_VERSION' " ${MAKE_VERSION} " | cut -d' =' -f2 | tr -d ' ' | cut -d' .' -f2) "
281305 OCPVERSION=" ${OCP_MAJOR} .${OCP_MINOR} "
282306 OCC_SRC=" https://mirror.openshift.com/pub/openshift-v${OCP_MAJOR} /$( uname -m) /dependencies/rpms/${OCPVERSION} -el9-beta"
283- OCC_RPM=" $( curl -s " ${OCC_SRC} /" | grep -o " openshift-clients-4 [^\" ']*.rpm" | sort | uniq) "
307+ OCC_RPM=" $( curl -s " ${OCC_SRC} /" | grep -o " openshift-clients-${OCP_MAJOR} [^\" ']*.rpm" | sort | uniq) "
284308 OCC_LOC=" $( mktemp /tmp/openshift-client-XXXXX.rpm) "
285309 OCC_REM=" ${OCC_SRC} /${OCC_RPM} "
286310
0 commit comments