diff --git a/hack/lib/catalogsource.bash b/hack/lib/catalogsource.bash index 55f72742be..5c58ad3817 100644 --- a/hack/lib/catalogsource.bash +++ b/hack/lib/catalogsource.bash @@ -33,6 +33,7 @@ function install_catalogsource { sed -i "s,image: .*openshift-serverless-.*:knative-operator,image: ${KNATIVE_OPERATOR}," "$csv" sed -i "s,image: .*openshift-serverless-.*:knative-openshift-ingress,image: ${KNATIVE_OPENSHIFT_INGRESS}," "$csv" sed -i "s,image: .*openshift-serverless-.*:openshift-knative-operator,image: ${OPENSHIFT_KNATIVE_OPERATOR}," "$csv" + override_storage_version_migration_images "$csv" elif [ -n "$DOCKER_REPO_OVERRIDE" ]; then sed -i "s,image: .*openshift-serverless-.*:knative-operator,image: ${DOCKER_REPO_OVERRIDE}/knative-operator," "$csv" sed -i "s,image: .*openshift-serverless-.*:knative-openshift-ingress,image: ${DOCKER_REPO_OVERRIDE}/knative-openshift-ingress," "$csv" @@ -186,3 +187,23 @@ function add_user { logger.info "Kubeconfig for user ${name} created" } + +# Use images from quay registry in order to test issues such as SRVCOM-1873 +# during upgrades. The issue is only reproducible if Knative version is identical +# before/after upgrade but the migrator Job spec/image changes. Before upgrade, +# the images are pulled from CI registry and after upgrade they're pulled from +# quay.io. This way the Job spec is changes even though Knative version +# remains same. +function override_storage_version_migration_images { + local csv images name version + csv=${1:?Pass csv as arg[1]} + # Get all storage version migration images. + while IFS=$'\n' read -r line; do + images+=("$line"); + done < <(grep storage-version-migration "$csv" | grep "image:" | awk '{ print $2 }' | awk -F"\"" '{ print $2 }') + for image_pullspec in "${images[@]}"; do + name=$(echo "$image_pullspec" | awk -F":" '{ print $2 }') + version=$(echo "$image_pullspec" | awk -F":" '{ print $1 }' | awk -F"knative-" '{ print $2 }') + sed -i "s,${image_pullspec},quay.io/openshift-knative/${name}:${version}," "$csv" + done +}