From 18c7570a7fa356e0fb6e74cb8be83550a1618849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Gonz=C3=A1lez?= Date: Wed, 30 Oct 2024 20:26:44 +0100 Subject: [PATCH 1/2] chore(KFLUXMIG-13): build mtv downstream bundle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ernesto González --- ...forklift-operator-bundle-pull-request.yaml | 2 + .tekton/forklift-operator-bundle-push.yaml | 2 + build/forklift-operator-bundle/Containerfile | 4 +- .../forklift-operator-bundle/downstream-args | 1 + build/forklift-operator-bundle/upstream-args | 1 + operator/export-vars.sh | 49 ++++++++++++++++--- 6 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 build/forklift-operator-bundle/downstream-args create mode 100644 build/forklift-operator-bundle/upstream-args mode change 100644 => 100755 operator/export-vars.sh diff --git a/.tekton/forklift-operator-bundle-pull-request.yaml b/.tekton/forklift-operator-bundle-pull-request.yaml index d2c18ed6f..69ce636a8 100644 --- a/.tekton/forklift-operator-bundle-pull-request.yaml +++ b/.tekton/forklift-operator-bundle-pull-request.yaml @@ -34,6 +34,8 @@ spec: value: build/forklift-operator-bundle/Containerfile - name: path-context value: . + - name: build-args-file + value: build/forklift-operator-bundle/downstream-args pipelineSpec: description: | This pipeline is ideal for building container images from a Containerfile while maintaining trust after pipeline customization. diff --git a/.tekton/forklift-operator-bundle-push.yaml b/.tekton/forklift-operator-bundle-push.yaml index 05ee1c107..1abf2b6b4 100644 --- a/.tekton/forklift-operator-bundle-push.yaml +++ b/.tekton/forklift-operator-bundle-push.yaml @@ -31,6 +31,8 @@ spec: value: build/forklift-operator-bundle/Containerfile - name: path-context value: . + - name: build-args-file + value: build/forklift-operator-bundle/downstream-args pipelineSpec: description: | This pipeline is ideal for building container images from a Containerfile while maintaining trust after pipeline customization. diff --git a/build/forklift-operator-bundle/Containerfile b/build/forklift-operator-bundle/Containerfile index c64079216..754589f62 100644 --- a/build/forklift-operator-bundle/Containerfile +++ b/build/forklift-operator-bundle/Containerfile @@ -1,8 +1,10 @@ FROM quay.io/konflux-ci/operator-sdk-builder@sha256:73fa40301aebf0c62903a5840918251f444212319f95a4e467eeaf0cd8c4349e as builder +ARG STREAM=downstream + COPY ./. /repo WORKDIR /repo/operator -RUN source ./export-vars.sh && \ +RUN source ./export-vars.sh ${STREAM} && \ kustomize build config/manifests/ \ | envsubst \ | operator-sdk generate bundle \ diff --git a/build/forklift-operator-bundle/downstream-args b/build/forklift-operator-bundle/downstream-args new file mode 100644 index 000000000..21fd4d234 --- /dev/null +++ b/build/forklift-operator-bundle/downstream-args @@ -0,0 +1 @@ +STREAM=downstream diff --git a/build/forklift-operator-bundle/upstream-args b/build/forklift-operator-bundle/upstream-args new file mode 100644 index 000000000..a61453b92 --- /dev/null +++ b/build/forklift-operator-bundle/upstream-args @@ -0,0 +1 @@ +STREAM=upstream diff --git a/operator/export-vars.sh b/operator/export-vars.sh old mode 100644 new mode 100755 index d8a1df54f..eb60ec82f --- a/operator/export-vars.sh +++ b/operator/export-vars.sh @@ -1,4 +1,13 @@ -#!/bin/bash -e +#!/bin/bash -ex + +# Check if the script has exactly one parameter +if [ "$#" -ne 1 ]; then + echo "Error: Exactly one parameter is required." + echo "Usage: $0 " + exit 1 +fi + +stream=$1 declare -A images @@ -26,13 +35,41 @@ images[VALIDATION_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift- images[VIRT_V2V_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/virt-v2v@sha256:9a8548cf4439121ceaa7a8d626d6c6f1f9280f63b2daf471d24fd62c8185a3f4 +# For downstream, the names of the images change + +declare -A replacements + +replacements[API_IMAGE]=mtv-api-rhel9 +replacements[CONTROLLER_IMAGE]=mtv-controller-rhel8 +replacements[MUST_GATHER_IMAGE]=mtv-must-gather-rhel8 +replacements[OPENSTACK_POPULATOR_IMAGE]=mtv-openstack-populator-rhel9 +replacements[OPERATOR_IMAGE]=mtv-rhel8-operator +replacements[OVA_PROVIDER_SERVER_IMAGE]=mtv-ova-provider-server-rhel9 +replacements[OVIRT_POPULATOR_IMAGE]=mtv-rhv-populator-rhel8 +replacements[POPULATOR_CONTROLLER_IMAGE]=mtv-populator-controller-rhel9 +replacements[UI_PLUGIN_IMAGE]=mtv-console-plugin-rhel9 +replacements[VALIDATION_IMAGE]=mtv-validation-rhel8 +replacements[VIRT_V2V_IMAGE]=mtv-virt-v2v-rhel8 + # Chage the repository of the images to match the repository they would be pushed # to during a release. -for k in "${!images[@]}"; do - image="${images[$k]}" - new_image="${image/redhat-user-workloads\/rh-mtv-1-tenant/kubev2v}" - export "$k=$new_image" -done +if [ $stream == "upstream" ]; then + for k in "${!images[@]}"; do + image="${images[$k]}" + new_image="${image/quay.io\/redhat-user-workloads\/rh-mtv-1-tenant\/forklift-operator/kubev2v}" + export "$k=$new_image" + done +elif [ $stream == "downstream" ]; then + for k in "${!images[@]}"; do + image="${images[$k]}" + new_image="${image/forklift-operator\/[^@]*@/forklift-operator\/${replacements[$k]}@}" + new_image="${new_image/quay.io\/redhat-user-workloads\/rh-mtv-1-tenant\/forklift-operator/registry.redhat.io\/migration-toolkit-virtualization}" + export "$k=$new_image" + done +else + echo "Stream not valid. Expected 'upstream' or 'downstream'." + exit 1 +fi export VERSION="v2.7.0" From a10bf19df2d8e7d273803c923fbaa32dd8d4eed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Gonz=C3=A1lez?= Date: Sun, 8 Dec 2024 14:55:10 +0100 Subject: [PATCH 2/2] split export-vars.sh in two files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ernesto González --- build/forklift-operator-bundle/Containerfile | 2 +- ...port-vars.sh => export-vars-downstream.sh} | 32 +++------------- operator/export-vars-upstream.sh | 38 +++++++++++++++++++ 3 files changed, 45 insertions(+), 27 deletions(-) rename operator/{export-vars.sh => export-vars-downstream.sh} (76%) create mode 100755 operator/export-vars-upstream.sh diff --git a/build/forklift-operator-bundle/Containerfile b/build/forklift-operator-bundle/Containerfile index 754589f62..a1c4ef8d6 100644 --- a/build/forklift-operator-bundle/Containerfile +++ b/build/forklift-operator-bundle/Containerfile @@ -4,7 +4,7 @@ ARG STREAM=downstream COPY ./. /repo WORKDIR /repo/operator -RUN source ./export-vars.sh ${STREAM} && \ +RUN source ./export-vars-${STREAM}.sh && \ kustomize build config/manifests/ \ | envsubst \ | operator-sdk generate bundle \ diff --git a/operator/export-vars.sh b/operator/export-vars-downstream.sh similarity index 76% rename from operator/export-vars.sh rename to operator/export-vars-downstream.sh index eb60ec82f..ef96a0168 100755 --- a/operator/export-vars.sh +++ b/operator/export-vars-downstream.sh @@ -1,14 +1,5 @@ #!/bin/bash -ex -# Check if the script has exactly one parameter -if [ "$#" -ne 1 ]; then - echo "Error: Exactly one parameter is required." - echo "Usage: $0 " - exit 1 -fi - -stream=$1 - declare -A images # The image refrences below will get updated by Konflux everytime there is a new image. @@ -54,22 +45,11 @@ replacements[VIRT_V2V_IMAGE]=mtv-virt-v2v-rhel8 # Chage the repository of the images to match the repository they would be pushed # to during a release. -if [ $stream == "upstream" ]; then - for k in "${!images[@]}"; do - image="${images[$k]}" - new_image="${image/quay.io\/redhat-user-workloads\/rh-mtv-1-tenant\/forklift-operator/kubev2v}" - export "$k=$new_image" - done -elif [ $stream == "downstream" ]; then - for k in "${!images[@]}"; do - image="${images[$k]}" - new_image="${image/forklift-operator\/[^@]*@/forklift-operator\/${replacements[$k]}@}" - new_image="${new_image/quay.io\/redhat-user-workloads\/rh-mtv-1-tenant\/forklift-operator/registry.redhat.io\/migration-toolkit-virtualization}" - export "$k=$new_image" - done -else - echo "Stream not valid. Expected 'upstream' or 'downstream'." - exit 1 -fi +for k in "${!images[@]}"; do + image="${images[$k]}" + new_image="${image/forklift-operator\/[^@]*@/forklift-operator\/${replacements[$k]}@}" + new_image="${new_image/quay.io\/redhat-user-workloads\/rh-mtv-1-tenant\/forklift-operator/registry.redhat.io\/migration-toolkit-virtualization}" + export "$k=$new_image" +done export VERSION="v2.7.0" diff --git a/operator/export-vars-upstream.sh b/operator/export-vars-upstream.sh new file mode 100755 index 000000000..217eb9a40 --- /dev/null +++ b/operator/export-vars-upstream.sh @@ -0,0 +1,38 @@ +#!/bin/bash -ex + +declare -A images + +# The image refrences below will get updated by Konflux everytime there is a new image. + +images[API_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/forklift-api@sha256:35f0675e518528d911fcc3d36b343ededd9782fe0a5b7284a229dd9a0afc9656 + +images[CONTROLLER_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/forklift-controller@sha256:3a70be74984ec0530496c7a1d66fecda41216a2afa36803eaaa422a832677a23 + +images[MUST_GATHER_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/forklift-must-gather@sha256:3ff09dbc5ca4c0dd196eab5da46a98da7deaa4e71de010cd52684ca2eaaa0d7a + +images[OPENSTACK_POPULATOR_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/openstack-populator@sha256:f7bbdd2504f4e8441a9be58ee780b6c6ca3b4285ba4020b8958575dc5ecf9026 + +images[OPERATOR_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/forklift-operator@sha256:3e54959b60651873c7410a10dfaa8537d064d304cf34f47680bdaccfc6f3aeba + +images[OVA_PROVIDER_SERVER_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/ova-provider-server@sha256:fea2945986e40914f615438497b478dee5d3adbcb0e4729c177dee21772e4342 + +images[OVIRT_POPULATOR_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/ovirt-populator@sha256:c2e933d4ec5c94e7721d2835d71a91d0bd7451af2cffd2860c4dd86e40a0bdfc + +images[POPULATOR_CONTROLLER_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/populator-controller@sha256:c127768d14d9c56d487e2356a315f634278a412a9a50ab9c3eda447d5e3d0f2d + +images[UI_PLUGIN_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/forklift-console-plugin@sha256:86d33a87e4e96858af57c9a574dfc7357b5e97aa78e269de39aa3d7b7c3423d9 + +images[VALIDATION_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/validation@sha256:58edf1e9d49c33bdd62abcd632a61ba61e68b8977f3f57e9feb93c1dd4f07fb6 + +images[VIRT_V2V_IMAGE]=quay.io/redhat-user-workloads/rh-mtv-1-tenant/forklift-operator/virt-v2v@sha256:9a8548cf4439121ceaa7a8d626d6c6f1f9280f63b2daf471d24fd62c8185a3f4 + +# Chage the repository of the images to match the repository they would be pushed +# to during a release. + +for k in "${!images[@]}"; do + image="${images[$k]}" + new_image="${image/redhat-user-workloads\/rh-mtv-1-tenant\/forklift-operator/kubev2v}" + export "$k=$new_image" +done + +export VERSION="v2.7.0"