Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use registry.redhat.io reference in CSV #2920

Merged
merged 11 commits into from
Oct 7, 2024
61 changes: 55 additions & 6 deletions hack/lib/catalogsource.bash
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

default_serverless_operator_images

index_image="${SERVERLESS_INDEX}"
index_image="${INDEX_IMAGE:-$SERVERLESS_INDEX}"

# Build bundle and index images only when running in CI or when DOCKER_REPO_OVERRIDE is defined.
# Otherwise the latest nightly build will be used for CatalogSource.
Expand Down Expand Up @@ -49,6 +49,10 @@
override_storage_version_migration_images "$csv"
fi

# Replace registry.redhat.io references with Konflux quay.io for test purposes as
# images in the former location are not published yet.
sed -ri "s#(.*)${registry_redhat_io}/(.*@sha[0-9]+:[a-z0-9]+.*)#\1${registry_quay}/\2#" "$csv"

Check warning on line 54 in hack/lib/catalogsource.bash

View workflow job for this annotation

GitHub Actions / Lint

[shellcheck] reported by reviewdog 🐶 registry_redhat_io is referenced but not assigned. Raw Output: ./hack/lib/catalogsource.bash:54:20: warning: registry_redhat_io is referenced but not assigned. (ShellCheck.SC2154)

Check warning on line 54 in hack/lib/catalogsource.bash

View workflow job for this annotation

GitHub Actions / Lint

[shellcheck] reported by reviewdog 🐶 registry_quay is referenced but not assigned. Raw Output: ./hack/lib/catalogsource.bash:54:71: warning: registry_quay is referenced but not assigned. (ShellCheck.SC2154)

cat "$csv"

build_image "serverless-bundle" "${rootdir}" "olm-catalog/serverless-operator/Dockerfile"
Expand Down Expand Up @@ -84,11 +88,8 @@

logger.debug 'Undo potential changes to the index Dockerfile.'
mv "${rootdir}/_output/bkp.Dockerfile" "${rootdir}/${index_dorkerfile_path}"
fi

if [ -n "${INDEX_IMAGE:-}" ]; then
echo "Index image : $INDEX_IMAGE"
index_image="$INDEX_IMAGE"
else
install_image_content_source_policy "$index_image" "$registry_redhat_io" "$registry_quay"
fi

logger.info 'Install the catalogsource.'
Expand Down Expand Up @@ -116,6 +117,53 @@
logger.success "CatalogSource installed successfully"
}

function install_image_content_source_policy {
local index tmpfile registry_source registry_target
index="${1:?Pass index image as arg[1]}"
registry_source="${2:?Pass source registry arg[2]}"
registry_target="${3:?Pass target registry arg[3]}"

logger.info "Install ImageContentSourcePolicy"
tmpfile=$(mktemp /tmp/icsp.XXXXXX.yaml)
cat > "$tmpfile" <<EOF
apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
labels:
operators.openshift.org/catalog: "true"
name: serverless-image-content-source-policy
spec:
repositoryDigestMirrors:
EOF

oc adm catalog mirror "$index" "$registry_target" --manifests-only=true --to-manifests=iib-manifests/

# The generated ICSP is incorrect as it replaces slashes in long repository paths with dashes and
# includes third-party images. Create a proper ICSP based on the generated one.
mirrors=$(yq read iib-manifests/imageContentSourcePolicy.yaml 'spec.repositoryDigestMirrors[*].source')
while IFS= read -r line; do
# shellcheck disable=SC2053
if [[ $line == $registry_source || $line =~ $registry_source ]]; then
img=${line##*/} # Get image name after last slash
add_repository_digest_mirrors "$tmpfile" "${registry_source}/${img}" "${registry_target}/${img}"
fi
done <<< "$mirrors"

[ -n "$OPENSHIFT_CI" ] && cat "$tmpfile"
oc apply -f "$tmpfile"
}

function add_repository_digest_mirrors {
echo "Add mirror image to '${1}' - $2 = $3"
cat << EOF | yq write --inplace --script - "$1"
- command: update
path: spec.repositoryDigestMirrors[+]
value:
mirrors: [ "${3}" ]
source: "${2}"
EOF
}

# Dockerfiles might specify "FROM $XYZ" which fails OpenShift on-cluster
# builds. Replace the references with real images.
function replace_images() {
Expand Down Expand Up @@ -161,6 +209,7 @@

function delete_catalog_source {
logger.info "Deleting CatalogSource $OPERATOR"
oc delete imagecontentsourcepolicy --ignore-not-found=true serverless-image-content-source-policy
pierDipi marked this conversation as resolved.
Show resolved Hide resolved
oc delete catalogsource --ignore-not-found=true -n "$OLM_NAMESPACE" "$OPERATOR"
oc delete service --ignore-not-found=true -n "$OLM_NAMESPACE" serverless-index
oc delete deployment --ignore-not-found=true -n "$OLM_NAMESPACE" serverless-index
Expand Down
116 changes: 68 additions & 48 deletions hack/lib/images.bash
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,20 @@ CURRENT_VERSION="$(metadata.get project.version)"

quay_registry_app_version=${CURRENT_VERSION/./} # 1.34.0 -> 134.0
quay_registry_app_version=${quay_registry_app_version%.*} # 134.0 -> 134
registry_prefix="quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-"
registry_host="${registry_prefix}${quay_registry_app_version}"
registry="${registry_host}"
serverless_registry="${registry_host}/serverless"
registry_prefix_quay="quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-"
registry_quay="${registry_prefix_quay}${quay_registry_app_version}"
registry_redhat_io="registry.redhat.io/openshift-serverless-1"

function default_serverless_operator_images() {
export SERVERLESS_KNATIVE_OPERATOR=${SERVERLESS_KNATIVE_OPERATOR:-$(latest_konflux_image_sha "${serverless_registry}-kn-operator:${CURRENT_VERSION_IMAGES}")}
export SERVERLESS_OPENSHIFT_KNATIVE_OPERATOR=${SERVERLESS_OPENSHIFT_KNATIVE_OPERATOR:-$(latest_konflux_image_sha "${serverless_registry}-openshift-kn-operator:${CURRENT_VERSION_IMAGES}")}
export SERVERLESS_INGRESS=${SERVERLESS_INGRESS:-$(latest_konflux_image_sha "${serverless_registry}-ingress:${CURRENT_VERSION_IMAGES}")}
local serverless_registry="${registry_quay}/serverless"

export SERVERLESS_KNATIVE_OPERATOR=${SERVERLESS_KNATIVE_OPERATOR:-$(latest_registry_redhat_io_image_sha "${serverless_registry}-kn-operator:${CURRENT_VERSION_IMAGES}")}
export SERVERLESS_OPENSHIFT_KNATIVE_OPERATOR=${SERVERLESS_OPENSHIFT_KNATIVE_OPERATOR:-$(latest_registry_redhat_io_image_sha "${serverless_registry}-openshift-kn-operator:${CURRENT_VERSION_IMAGES}")}
export SERVERLESS_INGRESS=${SERVERLESS_INGRESS:-$(latest_registry_redhat_io_image_sha "${serverless_registry}-ingress:${CURRENT_VERSION_IMAGES}")}

export SERVERLESS_BUNDLE=${SERVERLESS_BUNDLE:-$(latest_konflux_image_sha "${serverless_registry}-bundle:${CURRENT_VERSION_IMAGES}")}
export DEFAULT_SERVERLESS_BUNDLE=${DEFAULT_SERVERLESS_BUNDLE:-$(latest_konflux_image_sha "${serverless_registry}-bundle:${CURRENT_VERSION_IMAGES}")}

export SERVERLESS_INDEX=${SERVERLESS_INDEX:-$(latest_konflux_image_sha "${serverless_registry}-index:${CURRENT_VERSION_IMAGES}")}
}

Expand All @@ -36,19 +38,18 @@ function default_knative_serving_images() {

function knative_serving_images() {
local serving tag app_version
serving="${registry}/knative-serving"
tag=${1:?"Provide tag for Serving images"}

app_version=$(get_app_version_from_tag "${tag}")
serving="${registry_prefix}${app_version}/kn-serving"
serving="${registry_prefix_quay}${app_version}/kn-serving"

export KNATIVE_SERVING_QUEUE=${KNATIVE_SERVING_QUEUE:-$(latest_konflux_image_sha "${serving}-queue:${tag}")}
export KNATIVE_SERVING_ACTIVATOR=${KNATIVE_SERVING_ACTIVATOR:-$(latest_konflux_image_sha "${serving}-activator:${tag}")}
export KNATIVE_SERVING_AUTOSCALER=${KNATIVE_SERVING_AUTOSCALER:-$(latest_konflux_image_sha "${serving}-autoscaler:${tag}")}
export KNATIVE_SERVING_AUTOSCALER_HPA=${KNATIVE_SERVING_AUTOSCALER_HPA:-$(latest_konflux_image_sha "${serving}-autoscaler-hpa:${tag}")}
export KNATIVE_SERVING_CONTROLLER=${KNATIVE_SERVING_CONTROLLER:-$(latest_konflux_image_sha "${serving}-controller:${tag}")}
export KNATIVE_SERVING_WEBHOOK=${KNATIVE_SERVING_WEBHOOK:-$(latest_konflux_image_sha "${serving}-webhook:${tag}")}
export KNATIVE_SERVING_STORAGE_VERSION_MIGRATION=${KNATIVE_SERVING_STORAGE_VERSION_MIGRATION:-$(latest_konflux_image_sha "${serving}-storage-version-migration:${tag}")}
export KNATIVE_SERVING_QUEUE=${KNATIVE_SERVING_QUEUE:-$(latest_registry_redhat_io_image_sha "${serving}-queue:${tag}")}
export KNATIVE_SERVING_ACTIVATOR=${KNATIVE_SERVING_ACTIVATOR:-$(latest_registry_redhat_io_image_sha "${serving}-activator:${tag}")}
export KNATIVE_SERVING_AUTOSCALER=${KNATIVE_SERVING_AUTOSCALER:-$(latest_registry_redhat_io_image_sha "${serving}-autoscaler:${tag}")}
export KNATIVE_SERVING_AUTOSCALER_HPA=${KNATIVE_SERVING_AUTOSCALER_HPA:-$(latest_registry_redhat_io_image_sha "${serving}-autoscaler-hpa:${tag}")}
export KNATIVE_SERVING_CONTROLLER=${KNATIVE_SERVING_CONTROLLER:-$(latest_registry_redhat_io_image_sha "${serving}-controller:${tag}")}
export KNATIVE_SERVING_WEBHOOK=${KNATIVE_SERVING_WEBHOOK:-$(latest_registry_redhat_io_image_sha "${serving}-webhook:${tag}")}
export KNATIVE_SERVING_STORAGE_VERSION_MIGRATION=${KNATIVE_SERVING_STORAGE_VERSION_MIGRATION:-$(latest_registry_redhat_io_image_sha "${serving}-storage-version-migration:${tag}")}
}

function knative_eventing_images_release() {
Expand All @@ -64,30 +65,32 @@ function knative_eventing_images() {
tag=${1:?"Provide tag for Eventing images"}

app_version=$(get_app_version_from_tag "${tag}")
eventing="${registry_prefix}${app_version}/kn-eventing"

export KNATIVE_EVENTING_CONTROLLER=${KNATIVE_EVENTING_CONTROLLER:-$(latest_konflux_image_sha "${eventing}-controller:${tag}")}
export KNATIVE_EVENTING_WEBHOOK=${KNATIVE_EVENTING_WEBHOOK:-$(latest_konflux_image_sha "${eventing}-webhook:${tag}")}
export KNATIVE_EVENTING_STORAGE_VERSION_MIGRATION=${KNATIVE_EVENTING_STORAGE_VERSION_MIGRATION:-$(latest_konflux_image_sha "${eventing}-migrate:${tag}")}
export KNATIVE_EVENTING_INGRESS=${KNATIVE_EVENTING_INGRESS:-$(latest_konflux_image_sha "${eventing}-ingress:${tag}")}
export KNATIVE_EVENTING_FILTER=${KNATIVE_EVENTING_FILTER:-$(latest_konflux_image_sha "${eventing}-filter:${tag}")}
export KNATIVE_EVENTING_MTCHANNEL_BROKER=${KNATIVE_EVENTING_MTCHANNEL_BROKER:-$(latest_konflux_image_sha "${eventing}-mtchannel-broker:${tag}")}
export KNATIVE_EVENTING_MTPING=${KNATIVE_EVENTING_MTPING:-$(latest_konflux_image_sha "${eventing}-mtping:${tag}")}
export KNATIVE_EVENTING_CHANNEL_CONTROLLER=${KNATIVE_EVENTING_CHANNEL_CONTROLLER:-$(latest_konflux_image_sha "${eventing}-channel-controller:${tag}")}
export KNATIVE_EVENTING_CHANNEL_DISPATCHER=${KNATIVE_EVENTING_CHANNEL_DISPATCHER:-$(latest_konflux_image_sha "${eventing}-channel-dispatcher:${tag}")}
export KNATIVE_EVENTING_APISERVER_RECEIVE_ADAPTER=${KNATIVE_EVENTING_APISERVER_RECEIVE_ADAPTER:-$(latest_konflux_image_sha "${eventing}-apiserver-receive-adapter:${tag}")}
export KNATIVE_EVENTING_JOBSINK=${KNATIVE_EVENTING_JOBSINK:-$(latest_konflux_image_sha "${eventing}-jobsink:${tag}")}

eventing="${registry_prefix_quay}${app_version}/kn-eventing"

export KNATIVE_EVENTING_CONTROLLER=${KNATIVE_EVENTING_CONTROLLER:-$(latest_registry_redhat_io_image_sha "${eventing}-controller:${tag}")}
export KNATIVE_EVENTING_WEBHOOK=${KNATIVE_EVENTING_WEBHOOK:-$(latest_registry_redhat_io_image_sha "${eventing}-webhook:${tag}")}
export KNATIVE_EVENTING_STORAGE_VERSION_MIGRATION=${KNATIVE_EVENTING_STORAGE_VERSION_MIGRATION:-$(latest_registry_redhat_io_image_sha "${eventing}-migrate:${tag}")}
export KNATIVE_EVENTING_INGRESS=${KNATIVE_EVENTING_INGRESS:-$(latest_registry_redhat_io_image_sha "${eventing}-ingress:${tag}")}
export KNATIVE_EVENTING_FILTER=${KNATIVE_EVENTING_FILTER:-$(latest_registry_redhat_io_image_sha "${eventing}-filter:${tag}")}
export KNATIVE_EVENTING_MTCHANNEL_BROKER=${KNATIVE_EVENTING_MTCHANNEL_BROKER:-$(latest_registry_redhat_io_image_sha "${eventing}-mtchannel-broker:${tag}")}
export KNATIVE_EVENTING_MTPING=${KNATIVE_EVENTING_MTPING:-$(latest_registry_redhat_io_image_sha "${eventing}-mtping:${tag}")}
export KNATIVE_EVENTING_CHANNEL_CONTROLLER=${KNATIVE_EVENTING_CHANNEL_CONTROLLER:-$(latest_registry_redhat_io_image_sha "${eventing}-channel-controller:${tag}")}
export KNATIVE_EVENTING_CHANNEL_DISPATCHER=${KNATIVE_EVENTING_CHANNEL_DISPATCHER:-$(latest_registry_redhat_io_image_sha "${eventing}-channel-dispatcher:${tag}")}
export KNATIVE_EVENTING_APISERVER_RECEIVE_ADAPTER=${KNATIVE_EVENTING_APISERVER_RECEIVE_ADAPTER:-$(latest_registry_redhat_io_image_sha "${eventing}-apiserver-receive-adapter:${tag}")}
export KNATIVE_EVENTING_JOBSINK=${KNATIVE_EVENTING_JOBSINK:-$(latest_registry_redhat_io_image_sha "${eventing}-jobsink:${tag}")}
export KNATIVE_EVENTING_MIGRATE=${KNATIVE_EVENTING_MIGRATE:-$(latest_registry_redhat_io_image_sha "${eventing}-migrate:${tag}")}

# Point to Konflux Quay repo for images not present in ClusterServiceVersion.
export KNATIVE_EVENTING_APPENDER=${KNATIVE_EVENTING_APPENDER:-$(latest_konflux_image_sha "${eventing}-appender:${tag}")}
export KNATIVE_EVENTING_EVENT_DISPLAY=${KNATIVE_EVENTING_EVENT_DISPLAY:-$(latest_konflux_image_sha "${eventing}-event-display:${tag}")}
export KNATIVE_EVENTING_HEARTBEATS_RECEIVER=${KNATIVE_EVENTING_HEARTBEATS_RECEIVER:-$(latest_konflux_image_sha "${eventing}-heartbeats-receiver:${tag}")}
export KNATIVE_EVENTING_HEARTBEATS=${KNATIVE_EVENTING_HEARTBEATS:-$(latest_konflux_image_sha "${eventing}-heartbeats:${tag}")}
export KNATIVE_EVENTING_MIGRATE=${KNATIVE_EVENTING_MIGRATE:-$(latest_konflux_image_sha "${eventing}-migrate:${tag}")}
export KNATIVE_EVENTING_PONG=${KNATIVE_EVENTING_PONG:-$(latest_konflux_image_sha "${eventing}-pong:${tag}")}
export KNATIVE_EVENTING_SCHEMA=${KNATIVE_EVENTING_SCHEMA:-$(latest_konflux_image_sha "${eventing}-schema:${tag}")}

# Test images
local eventing_test="${eventing}-test"

export KNATIVE_EVENTING_TEST_EVENT_SENDER=${KNATIVE_EVENTING_TEST_EVENT_SENDER:-$(latest_konflux_image_sha "${eventing_test}-event-sender:${tag}")}
export KNATIVE_EVENTING_TEST_EVENTSHUB=${KNATIVE_EVENTING_TEST_EVENTSHUB:-$(latest_konflux_image_sha "${eventing_test}-eventshub:${tag}")}
export KNATIVE_EVENTING_TEST_PRINT=${KNATIVE_EVENTING_TEST_PRINT:-$(latest_konflux_image_sha "${eventing_test}-print:${tag}")}
Expand All @@ -112,9 +115,9 @@ function knative_eventing_istio_images() {
tag=${1:?"Provide tag for Eventing Istio images"}

app_version=$(get_app_version_from_tag "${tag}")
eventing_istio="${registry_prefix}${app_version}/kn-eventing-istio"
eventing_istio="${registry_prefix_quay}${app_version}/kn-eventing-istio"

export KNATIVE_EVENTING_ISTIO_CONTROLLER=${KNATIVE_EVENTING_ISTIO_CONTROLLER:-$(latest_konflux_image_sha "${eventing_istio}-controller:${tag}")}
export KNATIVE_EVENTING_ISTIO_CONTROLLER=${KNATIVE_EVENTING_ISTIO_CONTROLLER:-$(latest_registry_redhat_io_image_sha "${eventing_istio}-controller:${tag}")}
}

function knative_eventing_kafka_broker_images_release() {
Expand All @@ -130,13 +133,13 @@ function knative_eventing_kafka_broker_images() {
tag=${1:?"Provide tag for Eventing Kafka Broker images"}

app_version=$(get_app_version_from_tag "${tag}")
eventing_kafka_broker="${registry_prefix}${app_version}/kn-ekb"
eventing_kafka_broker="${registry_prefix_quay}${app_version}/kn-ekb"

export KNATIVE_EVENTING_KAFKA_BROKER_DISPATCHER=${KNATIVE_EVENTING_KAFKA_BROKER_DISPATCHER:-$(latest_konflux_image_sha "${eventing_kafka_broker}-dispatcher:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_RECEIVER=${KNATIVE_EVENTING_KAFKA_BROKER_RECEIVER:-$(latest_konflux_image_sha "${eventing_kafka_broker}-receiver:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_KAFKA_CONTROLLER=${KNATIVE_EVENTING_KAFKA_BROKER_KAFKA_CONTROLLER:-$(latest_konflux_image_sha "${eventing_kafka_broker}-kafka-controller:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_WEBHOOK_KAFKA=${KNATIVE_EVENTING_KAFKA_BROKER_WEBHOOK_KAFKA:-$(latest_konflux_image_sha "${eventing_kafka_broker}-webhook-kafka":${tag})}
export KNATIVE_EVENTING_KAFKA_BROKER_POST_INSTALL=${KNATIVE_EVENTING_KAFKA_BROKER_POST_INSTALL:-$(latest_konflux_image_sha "${eventing_kafka_broker}-post-install:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_DISPATCHER=${KNATIVE_EVENTING_KAFKA_BROKER_DISPATCHER:-$(latest_registry_redhat_io_image_sha "${eventing_kafka_broker}-dispatcher:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_RECEIVER=${KNATIVE_EVENTING_KAFKA_BROKER_RECEIVER:-$(latest_registry_redhat_io_image_sha "${eventing_kafka_broker}-receiver:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_KAFKA_CONTROLLER=${KNATIVE_EVENTING_KAFKA_BROKER_KAFKA_CONTROLLER:-$(latest_registry_redhat_io_image_sha "${eventing_kafka_broker}-kafka-controller:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_WEBHOOK_KAFKA=${KNATIVE_EVENTING_KAFKA_BROKER_WEBHOOK_KAFKA:-$(latest_registry_redhat_io_image_sha "${eventing_kafka_broker}-webhook-kafka:${tag}")}
export KNATIVE_EVENTING_KAFKA_BROKER_POST_INSTALL=${KNATIVE_EVENTING_KAFKA_BROKER_POST_INSTALL:-$(latest_registry_redhat_io_image_sha "${eventing_kafka_broker}-post-install:${tag}")}
}

function knative_kn_plugin_func_images_release() {
Expand All @@ -152,9 +155,9 @@ function knative_kn_plugin_func_images() {
tag=${1:?"Provide tag for kn-plugin-func images"}

app_version=$(get_app_version_from_tag "${tag}")
knative_kn_plugin_func="${registry_prefix}${app_version}/kn-plugin-func"
knative_kn_plugin_func="${registry_prefix_quay}${app_version}/kn-plugin-func"

export KNATIVE_KN_PLUGIN_FUNC_FUNC_UTIL=${KNATIVE_KN_PLUGIN_FUNC_FUNC_UTIL:-$(latest_konflux_image_sha "${knative_kn_plugin_func}-func-util:${tag}")}
export KNATIVE_KN_PLUGIN_FUNC_FUNC_UTIL=${KNATIVE_KN_PLUGIN_FUNC_FUNC_UTIL:-$(latest_registry_redhat_io_image_sha "${knative_kn_plugin_func}-func-util:${tag}")}

export KNATIVE_KN_PLUGIN_FUNC_TEKTON_S2I=${KNATIVE_KN_PLUGIN_FUNC_UTIL:-"$(metadata.get dependencies.func.tekton_s2i)"}
export KNATIVE_KN_PLUGIN_FUNC_TEKTON_BUILDAH=${KNATIVE_KN_PLUGIN_FUNC_UTIL:-"$(metadata.get dependencies.func.tekton_buildah)"}
Expand All @@ -168,27 +171,27 @@ function default_knative_ingress_images() {

knative_kourier="$(metadata.get dependencies.kourier)"
kourier_app_version=$(get_app_version_from_tag "${knative_kourier}")
kourier_registry="${registry_prefix}${kourier_app_version}/net-kourier"
kourier_registry="${registry_prefix_quay}${kourier_app_version}/net-kourier"

export KNATIVE_KOURIER_CONTROL=${KNATIVE_KOURIER_CONTROL:-$(latest_konflux_image_sha "${kourier_registry}-kourier:${knative_kourier}")}
export KNATIVE_KOURIER_CONTROL=${KNATIVE_KOURIER_CONTROL:-$(latest_registry_redhat_io_image_sha "${kourier_registry}-kourier:${knative_kourier}")}
export KNATIVE_KOURIER_GATEWAY=${KNATIVE_KOURIER_GATEWAY:-"quay.io/maistra-dev/proxyv2-ubi8:$(metadata.get dependencies.maistra)"}

knative_istio="$(metadata.get dependencies.net_istio)"
istio_app_version=$(get_app_version_from_tag "${knative_istio}")
istio_registry="${registry_prefix}${istio_app_version}/net-istio"
istio_registry="${registry_prefix_quay}${istio_app_version}/net-istio"

export KNATIVE_ISTIO_CONTROLLER=${KNATIVE_ISTIO_CONTROLLER:-$(latest_konflux_image_sha "${istio_registry}-controller:${knative_istio}")}
export KNATIVE_ISTIO_WEBHOOK=${KNATIVE_ISTIO_WEBHOOK:-$(latest_konflux_image_sha "${istio_registry}-webhook:${knative_istio}")}
export KNATIVE_ISTIO_CONTROLLER=${KNATIVE_ISTIO_CONTROLLER:-$(latest_registry_redhat_io_image_sha "${istio_registry}-controller:${knative_istio}")}
export KNATIVE_ISTIO_WEBHOOK=${KNATIVE_ISTIO_WEBHOOK:-$(latest_registry_redhat_io_image_sha "${istio_registry}-webhook:${knative_istio}")}
}

function knative_backstage_plugins_images() {
local backstage_plugins tag app_version
tag=${1:?"Provide tag for Backstage plugins images"}

app_version=$(get_app_version_from_tag "${tag}")
backstage_plugins="${registry_prefix}${app_version}/kn-backstage-plugins"
backstage_plugins="${registry_prefix_quay}${app_version}/kn-backstage-plugins"

export KNATIVE_BACKSTAGE_PLUGINS_EVENTMESH=${KNATIVE_BACKSTAGE_PLUGINS_EVENTMESH:-$(latest_konflux_image_sha "${backstage_plugins}-eventmesh:${tag}")}
export KNATIVE_BACKSTAGE_PLUGINS_EVENTMESH=${KNATIVE_BACKSTAGE_PLUGINS_EVENTMESH:-$(latest_registry_redhat_io_image_sha "${backstage_plugins}-eventmesh:${tag}")}
}

function knative_backstage_plugins_images_release() {
Expand All @@ -199,6 +202,23 @@ function default_knative_backstage_plugins_images() {
knative_backstage_plugins_images "$(metadata.get dependencies.backstage_plugins)"
}

function latest_registry_redhat_io_image_sha() {
input=${1:?"Provide image"}

image_without_tag=${input%:*} # Remove tag, if any
image_without_tag=${image_without_tag%@*} # Remove sha, if any
image_name=${image_without_tag##*/} # Get image name after last slash

go_bin="$(go env GOPATH)/bin"
export GOPATH="$PATH:$go_bin"
digest=$(skopeo inspect --no-tags=true "docker://${image_without_tag}:latest" | jq -r '.Digest')
if [ "${digest}" = "" ]; then
exit 1
fi

echo "${registry_redhat_io}/${image_name}@${digest}"
}

function latest_konflux_image_sha() {
input=${1:?"Provide image"}

Expand Down
Loading
Loading