Skip to content

Commit fb3e2e9

Browse files
committed
e2e: fix operator-olm
1 parent d96c2ee commit fb3e2e9

2 files changed

Lines changed: 53 additions & 62 deletions

File tree

stackgres-k8s/e2e/spec/dbops-security-upgrade-olm

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -35,36 +35,31 @@ e2e_load_images() {
3535
OPERATOR_BUNDLE_IMAGE_NAME="${OPERATOR_BUNDLE_PUBLIC_REGISTRY}${OPERATOR_BUNDLE_PUBLIC_REGISTRY_PATH}/operator-bundle:$OPERATOR_BUNDLE_IMAGE_TAG"
3636
OPERATOR_BUNDLE_CATALOG_IMAGE_NAME="${OPERATOR_BUNDLE_PUBLIC_REGISTRY}${OPERATOR_BUNDLE_PUBLIC_REGISTRY_PATH}/operator-catalog:$OPERATOR_BUNDLE_IMAGE_TAG"
3737

38-
# The operator-registry check the images from the remote repository
38+
# The operator-registry check the bundle image from the remote repository
3939
BUNDLE_IMAGE_NAME="$E2E_OPERATOR_REGISTRY${E2E_OPERATOR_REGISTRY_PATH%/}/stackgres/${OPERATOR_BUNDLE_IMAGE_NAME##*/}"
40-
BUNDLE_OPERATOR_IMAGE_NAME="${OPERATOR_IMAGE_NAME%%:*}:$BUNDLE_STACKGRES_VERSION"
41-
EXPECTED_OPERATOR_IMAGE="$BUNDLE_OPERATOR_IMAGE_NAME"
42-
43-
if [ "$E2E_FORCE_BUNDLE_PULL" = "true" ]
44-
then
45-
docker pull "$(sh stackgres-k8s/ci/build/build-functions.sh image_name operator-bundle-image)"
46-
fi
47-
if [ "$E2E_FORCE_BUNDLE_PULL" = "true" ] \
48-
|| {
49-
[ "$E2E_FORCE_IMAGE_PULL" != "true" ] \
50-
&& test -f stackgres-k8s/ci/build/target/image-hashes."$(cat stackgres-k8s/ci/build/target/build_hash)" \
51-
&& docker inspect "$(sh stackgres-k8s/ci/build/build-functions.sh image_name operator-bundle-image)" >/dev/null 2>&1
52-
}
53-
then
54-
docker tag "$(sh stackgres-k8s/ci/build/build-functions.sh image_name operator-bundle-image)" "$OPERATOR_BUNDLE_IMAGE_NAME"
55-
docker tag "$OPERATOR_BUNDLE_IMAGE_NAME" "$BUNDLE_IMAGE_NAME"
56-
docker tag "$OPERATOR_IMAGE_NAME" "$BUNDLE_OPERATOR_IMAGE_NAME"
57-
load_image_k8s "$OPERATOR_BUNDLE_IMAGE_NAME"
58-
load_image_k8s "$BUNDLE_IMAGE_NAME"
59-
load_image_k8s "$BUNDLE_OPERATOR_IMAGE_NAME"
60-
BUNDLE_IMAGE_DIGEST="$(docker manifest inspect "$BUNDLE_IMAGE_NAME" 2>/dev/null | jq -r .config.digest 2>/dev/null || true)"
61-
if [ -z "$BUNDLE_IMAGE_DIGEST" ] \
62-
|| [ "$BUNDLE_IMAGE_DIGEST" \
63-
!= "$(docker inspect "$BUNDLE_IMAGE_NAME" 2>/dev/null | jq -r '.[0].RepoDigests[0]|split("@")[1]' 2>/dev/null)" ]
64-
then
65-
docker push "$BUNDLE_IMAGE_NAME"
66-
fi
67-
fi
40+
docker pull "$BUNDLE_IMAGE_NAME"
41+
mkdir -p "$LOG_PATH/operator-bundle"
42+
cat << EOF > "$LOG_PATH/operator-bundle.Dockerfile"
43+
FROM "$BUNDLE_IMAGE_NAME" AS bundle
44+
45+
FROM alpine AS overwrites
46+
COPY --from=bundle / /bundle
47+
RUN sed -i 's|^ name: .*$| name: stackgres.v$BUNDLE_STACKGRES_VERSION|' /bundle/manifests/stackgres.clusterserviceversion.yaml
48+
RUN sed -i 's|^ version: .*$| version: $BUNDLE_STACKGRES_VERSION|' /bundle/manifests/stackgres.clusterserviceversion.yaml
49+
RUN sed -i 's|^ containerImage: quay.io/stackgres/operator:.*$| containerImage: $OPERATOR_IMAGE_NAME|' /bundle/manifests/stackgres.clusterserviceversion.yaml
50+
RUN sed -i 's|^ image: quay.io/stackgres/operator:.*$| image: $OPERATOR_IMAGE_NAME|' /bundle/manifests/stackgres.clusterserviceversion.yaml
51+
52+
FROM scratch
53+
COPY --from=overwrites /bundle /
54+
$(
55+
docker inspect "$BUNDLE_IMAGE_NAME" -f json \
56+
| jq -r '.[0].Config.Labels|to_entries|.[]|"LABEL \"" + .key + "\"=\"" + .value + "\""' \
57+
| sed 's/^/ /'
58+
)
59+
EOF
60+
BUNDLE_IMAGE_NAME="${BUNDLE_IMAGE_NAME}-overridden"
61+
docker build -t "$BUNDLE_IMAGE_NAME" -f "$LOG_PATH/operator-bundle.Dockerfile" "$LOG_PATH/operator-bundle"
62+
docker push "$BUNDLE_IMAGE_NAME"
6863
}
6964

7065
e2e_install_previous_operator() {

stackgres-k8s/e2e/spec/operator-olm

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ check_operator_install() {
8181

8282
install_operator_olm() {
8383
echo "Installing of operator bundle ($STACKGRES_VERSION)"
84+
85+
# The operator-sdk does not allow to load a bundle with IfNotPresent so we have to pull it from the remote repository
86+
kubectl create secret docker-registry -n "$OPERATOR_NAMESPACE" operator-bundle \
87+
--from-file=.dockerconfigjson="$HOME"/.docker/config.json
88+
8489
cat << EOF > "$LOG_PATH/stackgres-operator-group.yaml"
8590
apiVersion: operators.coreos.com/v1
8691
kind: OperatorGroup
@@ -508,36 +513,31 @@ e2e_load_images() {
508513
OPERATOR_BUNDLE_IMAGE_NAME="${OPERATOR_BUNDLE_PUBLIC_REGISTRY}${OPERATOR_BUNDLE_PUBLIC_REGISTRY_PATH}/operator-bundle:$OPERATOR_BUNDLE_IMAGE_TAG"
509514
OPERATOR_BUNDLE_CATALOG_IMAGE_NAME="${OPERATOR_BUNDLE_PUBLIC_REGISTRY}${OPERATOR_BUNDLE_PUBLIC_REGISTRY_PATH}/operator-catalog:$OPERATOR_BUNDLE_IMAGE_TAG"
510515

511-
# The operator-registry check the images from the remote repository
516+
# The operator-registry check the bundle image from the remote repository
512517
BUNDLE_IMAGE_NAME="$E2E_OPERATOR_REGISTRY${E2E_OPERATOR_REGISTRY_PATH%/}/stackgres/${OPERATOR_BUNDLE_IMAGE_NAME##*/}"
513-
BUNDLE_OPERATOR_IMAGE_NAME="${OPERATOR_IMAGE_NAME%%:*}:$BUNDLE_STACKGRES_VERSION"
514-
EXPECTED_OPERATOR_IMAGE="$BUNDLE_OPERATOR_IMAGE_NAME"
515-
516-
if [ "$E2E_FORCE_BUNDLE_PULL" = "true" ]
517-
then
518-
docker pull "$(sh stackgres-k8s/ci/build/build-functions.sh image_name operator-bundle-image)"
519-
fi
520-
if [ "$E2E_FORCE_BUNDLE_PULL" = "true" ] \
521-
|| {
522-
[ "$E2E_FORCE_IMAGE_PULL" != "true" ] \
523-
&& test -f stackgres-k8s/ci/build/target/image-hashes."$(cat stackgres-k8s/ci/build/target/build_hash)" \
524-
&& docker inspect "$(sh stackgres-k8s/ci/build/build-functions.sh image_name operator-bundle-image)" >/dev/null 2>&1
525-
}
526-
then
527-
docker tag "$(sh stackgres-k8s/ci/build/build-functions.sh image_name operator-bundle-image)" "$OPERATOR_BUNDLE_IMAGE_NAME"
528-
docker tag "$OPERATOR_BUNDLE_IMAGE_NAME" "$BUNDLE_IMAGE_NAME"
529-
docker tag "$OPERATOR_IMAGE_NAME" "$BUNDLE_OPERATOR_IMAGE_NAME"
530-
load_image_k8s "$OPERATOR_BUNDLE_IMAGE_NAME"
531-
load_image_k8s "$BUNDLE_IMAGE_NAME"
532-
load_image_k8s "$BUNDLE_OPERATOR_IMAGE_NAME"
533-
BUNDLE_IMAGE_DIGEST="$(docker manifest inspect "$BUNDLE_IMAGE_NAME" 2>/dev/null | jq -r .config.digest 2>/dev/null || true)"
534-
if [ -z "$BUNDLE_IMAGE_DIGEST" ] \
535-
|| [ "$BUNDLE_IMAGE_DIGEST" \
536-
!= "$(docker inspect "$BUNDLE_IMAGE_NAME" 2>/dev/null | jq -r '.[0].RepoDigests[0]|split("@")[1]' 2>/dev/null)" ]
537-
then
538-
docker push "$BUNDLE_IMAGE_NAME"
539-
fi
540-
fi
518+
docker pull "$BUNDLE_IMAGE_NAME"
519+
mkdir -p "$LOG_PATH/operator-bundle"
520+
cat << EOF > "$LOG_PATH/operator-bundle.Dockerfile"
521+
FROM "$BUNDLE_IMAGE_NAME" AS bundle
522+
523+
FROM alpine AS overwrites
524+
COPY --from=bundle / /bundle
525+
RUN sed -i 's|^ name: .*$| name: stackgres.v$BUNDLE_STACKGRES_VERSION|' /bundle/manifests/stackgres.clusterserviceversion.yaml
526+
RUN sed -i 's|^ version: .*$| version: $BUNDLE_STACKGRES_VERSION|' /bundle/manifests/stackgres.clusterserviceversion.yaml
527+
RUN sed -i 's|^ containerImage: quay.io/stackgres/operator:.*$| containerImage: $OPERATOR_IMAGE_NAME|' /bundle/manifests/stackgres.clusterserviceversion.yaml
528+
RUN sed -i 's|^ image: quay.io/stackgres/operator:.*$| image: $OPERATOR_IMAGE_NAME|' /bundle/manifests/stackgres.clusterserviceversion.yaml
529+
530+
FROM scratch
531+
COPY --from=overwrites /bundle /
532+
$(
533+
docker inspect "$BUNDLE_IMAGE_NAME" -f json \
534+
| jq -r '.[0].Config.Labels|to_entries|.[]|"LABEL \"" + .key + "\"=\"" + .value + "\""' \
535+
| sed 's/^/ /'
536+
)
537+
EOF
538+
BUNDLE_IMAGE_NAME="${BUNDLE_IMAGE_NAME}-overridden"
539+
docker build -t "$BUNDLE_IMAGE_NAME" -f "$LOG_PATH/operator-bundle.Dockerfile" "$LOG_PATH/operator-bundle"
540+
docker push "$BUNDLE_IMAGE_NAME"
541541
}
542542

543543
e2e_install_olm() {
@@ -571,10 +571,6 @@ name: stable
571571
entries:
572572
- name: stackgres.v$BUNDLE_STACKGRES_VERSION
573573
EOF
574-
sed -i "s/^name: stackgres.v${BUNDLE_STACKGRES_VERSION%-*}.*$/name: stackgres.v$BUNDLE_STACKGRES_VERSION/" "$LOG_PATH/operator-catalog/operator.yaml"
575-
sed -i "s/^ version: ${BUNDLE_STACKGRES_VERSION%-*}.*$/ version: $BUNDLE_STACKGRES_VERSION/" "$LOG_PATH/operator-catalog/operator.yaml"
576-
sed -i "s/^- image: \([^:]\+\):${BUNDLE_STACKGRES_VERSION%-*}.*$/- image: \1:$BUNDLE_STACKGRES_VERSION/" "$LOG_PATH/operator-catalog/operator.yaml"
577-
sed -i "s/^ containerImage: \([^:]\+\):${BUNDLE_STACKGRES_VERSION%-*}.*$/ containerImage: \1:$BUNDLE_STACKGRES_VERSION/" "$LOG_PATH/operator-catalog/operator.yaml"
578574
opm validate "$LOG_PATH/operator-catalog"
579575
(
580576
cd "$LOG_PATH"

0 commit comments

Comments
 (0)