From e56940c7650e76faa4a6f6c51cf3d8e8ccfe6eea Mon Sep 17 00:00:00 2001 From: barakda Date: Fri, 23 Jun 2023 18:48:14 +0300 Subject: [PATCH 01/16] Create operator-deploy-ci.yml --- .github/workflows/operator-deploy-ci.yml | 98 ++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/operator-deploy-ci.yml diff --git a/.github/workflows/operator-deploy-ci.yml b/.github/workflows/operator-deploy-ci.yml new file mode 100644 index 000000000..547574e2a --- /dev/null +++ b/.github/workflows/operator-deploy-ci.yml @@ -0,0 +1,98 @@ + +name: operator-deploy-ci +on: + push: + branches: + - operator_buider_ci_add + pull_request: + workflow_dispatch: + inputs: + production: + description: 'Click the checkbox for production images' + default: false + type: boolean + required: false +env: + IMAGE_VERSION: 'v0.9.1' +jobs: + prepare_env: + name: "Prepare env" + runs-on: ubuntu-latest + env: + PRODUCTION: "${{ inputs.production }}" + BUILD_NUMBER: "${{ github.run_number }}" + GITHUB_SHA: "${{ github.sha }}" + PROD_REPOSITORY: csiblock/volume-group-operator-staging + STAGING_REPOSITORY: csiblock/volume-group-operator-staging + steps: + - name: Checkout code + uses: actions/checkout@v3.2.0 + - name: Setup dependencies + id: setup_dependencies + run: | + build/ci/github_actions/setup_ci_dependencies.sh + outputs: + repository: "${{ steps.setup_dependencies.outputs.repository }}" + specific_tag: "${{ steps.setup_dependencies.outputs.specific_tag }}" + global_tag: "${{ steps.setup_dependencies.outputs.global_tag }}" + + build_and_push_images: + name: "Build and push images" + runs-on: ubuntu-latest + env: + REGISTRY: quay.io + needs: + - prepare_env + steps: + - name: Checkout + uses: actions/checkout@v3.2.0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.repository }} + tags: | + type=raw,value=${{ needs.prepare_env.outputs.global_tag }} + type=raw,value=${{ needs.prepare_env.outputs.specific_tag }} + labels: | + commit=${{ github.sha }} + - name: Login to quay.io + uses: docker/login-action@v2 + with: + registry: quay.io + username: '${{ secrets.CSIBLOCK_DOCKER_REGISTRY_USERNAME }}' + password: '${{ secrets.CSIBLOCK_DOCKER_REGISTRY_PASSWORD }}' + - name: Build and push operator images + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64,linux/ppc64le,linux/s390x + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + file: Dockerfile + cache-from: type=gha + cache-to: type=gha,mode=max + build-args: | + VERSION: ${{ env.IMAGE_VERSION }} + BUILD_NUMBER: ${{ github.run_number }} + - name: show chosen image + run: | + echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.repository }}:${{ needs.prepare_env.outputs.specific_tag }} + echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.repository }}:${{ needs.prepare_env.outputs.global_tag }} + - name: save image names + run: | + echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.repository }} >> /tmp/images.txt + echo ${{ needs.prepare_env.outputs.specific_tag }} >> /tmp/images.txt + echo ${{ needs.prepare_env.outputs.global_tag }} >> /tmp/images.txt + - uses: actions/upload-artifact@v3 + with: + name: images + path: /tmp/images.txt + retention-days: 90 From 00b508a06e7b6353a67f20cc38b4198c31255ae5 Mon Sep 17 00:00:00 2001 From: barakda Date: Fri, 23 Jun 2023 18:51:47 +0300 Subject: [PATCH 02/16] setup_ci_dependencies.sh add --- .../github_actions/setup_ci_dependencies.sh | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 build/ci/github_actions/setup_ci_dependencies.sh diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh new file mode 100644 index 000000000..1e4b9ae18 --- /dev/null +++ b/build/ci/github_actions/setup_ci_dependencies.sh @@ -0,0 +1,26 @@ +#!/bin/bash -xe +set +o pipefail + +triggering_branch=$(echo $GITHUB_HEAD_REF| sed 's|/|.|g') +image_version=${IMAGE_VERSION} +build_number=${BUILD_NUMBER} +commit_hash=${GITHUB_SHA:0:7} +specific_tag="${image_version}_b${build_number}_${commit_hash}_${triggering_branch}" + + +if [ "$triggering_branch" == "develop" ]; then + global_tag=latest +else + global_tag=${triggering_branch} +fi + +if [ "$PRODUCTION" = true ]; then + repository=${PROD_REPOSITORY} + global_tag=${image_version} +else + repository=${STAGING_REPOSITORY} +fi + +echo "repository=${repository}" >> $GITHUB_OUTPUT +echo "specific_tag=${specific_tag}" >> $GITHUB_OUTPUT +echo "global_tag=${global_tag}" >> $GITHUB_OUTPUT From 862f425fded0dec2b422fbf45d173716df590c06 Mon Sep 17 00:00:00 2001 From: barakda Date: Sat, 24 Jun 2023 21:43:22 +0300 Subject: [PATCH 03/16] setup_ci_dependencies.sh chmod --- build/ci/github_actions/setup_ci_dependencies.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 build/ci/github_actions/setup_ci_dependencies.sh diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh old mode 100644 new mode 100755 From 5f0bc60ce6db71f2272410021a352d020ec11680 Mon Sep 17 00:00:00 2001 From: barakda Date: Sat, 24 Jun 2023 22:46:36 +0300 Subject: [PATCH 04/16] Update and rename operator-deploy-ci.yml --- .../{operator-deploy-ci.yml => operator-builder-ci.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{operator-deploy-ci.yml => operator-builder-ci.yml} (99%) diff --git a/.github/workflows/operator-deploy-ci.yml b/.github/workflows/operator-builder-ci.yml similarity index 99% rename from .github/workflows/operator-deploy-ci.yml rename to .github/workflows/operator-builder-ci.yml index 547574e2a..b2e66aeea 100644 --- a/.github/workflows/operator-deploy-ci.yml +++ b/.github/workflows/operator-builder-ci.yml @@ -1,5 +1,5 @@ -name: operator-deploy-ci +name: operator-builder-ci on: push: branches: From eb1a08499fafdb7d7265af5b394cbe06bbb6b184 Mon Sep 17 00:00:00 2001 From: barakda Date: Sun, 25 Jun 2023 09:56:03 +0300 Subject: [PATCH 05/16] Update operator-builder-ci.yml --- .github/workflows/operator-builder-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/operator-builder-ci.yml b/.github/workflows/operator-builder-ci.yml index b2e66aeea..483d1a90e 100644 --- a/.github/workflows/operator-builder-ci.yml +++ b/.github/workflows/operator-builder-ci.yml @@ -22,8 +22,8 @@ jobs: PRODUCTION: "${{ inputs.production }}" BUILD_NUMBER: "${{ github.run_number }}" GITHUB_SHA: "${{ github.sha }}" - PROD_REPOSITORY: csiblock/volume-group-operator-staging - STAGING_REPOSITORY: csiblock/volume-group-operator-staging + PROD_REPOSITORY: csiblock/ibm-block-csi-operator-staging + STAGING_REPOSITORY: csiblock/ibm-block-csi-operator-staging steps: - name: Checkout code uses: actions/checkout@v3.2.0 From 5dee35b598dfb3cdf196f460afd5d36d6594be81 Mon Sep 17 00:00:00 2001 From: barakda Date: Sun, 25 Jun 2023 12:49:26 +0300 Subject: [PATCH 06/16] Update operator-builder-ci.yml --- .github/workflows/operator-builder-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/operator-builder-ci.yml b/.github/workflows/operator-builder-ci.yml index 483d1a90e..5b100e2a2 100644 --- a/.github/workflows/operator-builder-ci.yml +++ b/.github/workflows/operator-builder-ci.yml @@ -76,7 +76,7 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - file: Dockerfile + file: build/Dockerfile cache-from: type=gha cache-to: type=gha,mode=max build-args: | From aa5e01e3390327a83feaa0c3129f5fd63ea51279 Mon Sep 17 00:00:00 2001 From: barakda Date: Sun, 25 Jun 2023 23:35:14 +0300 Subject: [PATCH 07/16] test dockerfile --- .github/workflows/operator-builder-ci.yml | 2 +- Dockerfile | 45 +++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/.github/workflows/operator-builder-ci.yml b/.github/workflows/operator-builder-ci.yml index 5b100e2a2..483d1a90e 100644 --- a/.github/workflows/operator-builder-ci.yml +++ b/.github/workflows/operator-builder-ci.yml @@ -76,7 +76,7 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - file: build/Dockerfile + file: Dockerfile cache-from: type=gha cache-to: type=gha,mode=max build-args: | diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..8a8ae4e3b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,45 @@ +# Build the manager binary +FROM golang:1.19 as builder +ARG TARGETOS +ARG TARGETARCH + +WORKDIR /workspace +# Copy the Go Modules manifests +COPY go.mod go.mod +COPY go.sum go.sum +# cache deps before building and copying source so that we don't need to re-download as much +# and so that source changes don't invalidate our downloaded layer +RUN go mod download + +# Copy the go source +COPY main.go main.go +COPY api/ api/ +COPY pkg/ pkg/ +COPY controllers/ controllers/ + +# Build +RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o manager main.go + +FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7-1107 + +ARG VERSION=1.11.0 +ARG BUILD_NUMBER=0 + +###Required Labels +LABEL name="IBM block CSI operator" \ + vendor="IBM" \ + version=$VERSION \ + release=$BUILD_NUMBER \ + summary="Manage objects in kubernetes and openshift" \ + description="The IBM block CSI operator enables container orchestrators to use objects and to manage them in their storage." \ + io.k8s.display-name="IBM block CSI operator" \ + io.k8s.description="The IBM block CSI operator enables container orchestrators to use objects and to manage them in their storage." \ + io.openshift.tags=ibm,csi,volume-group-operator + +COPY ./LICENSE /licenses/ + +WORKDIR / +COPY --from=builder /workspace/manager . +USER 65532:65532 + +ENTRYPOINT ["/manager"] From d3334c3ecf9f13a6d93e398282944545d6654c92 Mon Sep 17 00:00:00 2001 From: Matan Carmeli <45543087+matancarmeli7@users.noreply.github.com> Date: Mon, 26 Jun 2023 12:05:52 +0300 Subject: [PATCH 08/16] Update operator-builder-ci.yml --- .github/workflows/operator-builder-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/operator-builder-ci.yml b/.github/workflows/operator-builder-ci.yml index 483d1a90e..517d58ce8 100644 --- a/.github/workflows/operator-builder-ci.yml +++ b/.github/workflows/operator-builder-ci.yml @@ -76,7 +76,7 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - file: Dockerfile + file: build/Dockerfile.operator cache-from: type=gha cache-to: type=gha,mode=max build-args: | From 3002a6ffae2002afa17d2d97ab7f7c8cdf4d1785 Mon Sep 17 00:00:00 2001 From: barakda Date: Mon, 26 Jun 2023 12:53:41 +0300 Subject: [PATCH 09/16] global_tag test --- build/ci/github_actions/setup_ci_dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh index 1e4b9ae18..27a2cf029 100755 --- a/build/ci/github_actions/setup_ci_dependencies.sh +++ b/build/ci/github_actions/setup_ci_dependencies.sh @@ -9,7 +9,7 @@ specific_tag="${image_version}_b${build_number}_${commit_hash}_${triggering_bran if [ "$triggering_branch" == "develop" ]; then - global_tag=latest + global_tag=${triggering_branch} else global_tag=${triggering_branch} fi From d746dc6a656f10b3250319b259c07bafe8cea0ef Mon Sep 17 00:00:00 2001 From: barakda Date: Mon, 26 Jun 2023 13:46:47 +0300 Subject: [PATCH 10/16] GITHUB_HEAD_REF test --- build/ci/github_actions/setup_ci_dependencies.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh index 27a2cf029..de021e1f0 100755 --- a/build/ci/github_actions/setup_ci_dependencies.sh +++ b/build/ci/github_actions/setup_ci_dependencies.sh @@ -1,6 +1,9 @@ #!/bin/bash -xe set +o pipefail +echo "------------------------------" +echo $GITHUB_HEAD_REF +echo "------------------------------" triggering_branch=$(echo $GITHUB_HEAD_REF| sed 's|/|.|g') image_version=${IMAGE_VERSION} build_number=${BUILD_NUMBER} @@ -9,7 +12,7 @@ specific_tag="${image_version}_b${build_number}_${commit_hash}_${triggering_bran if [ "$triggering_branch" == "develop" ]; then - global_tag=${triggering_branch} + global_tag=latest else global_tag=${triggering_branch} fi From b8eb5974302caf4187c48d9a96d0575863e7cc6d Mon Sep 17 00:00:00 2001 From: barakda Date: Mon, 26 Jun 2023 13:49:54 +0300 Subject: [PATCH 11/16] GITHUB_REF test --- build/ci/github_actions/setup_ci_dependencies.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh index de021e1f0..29677870e 100755 --- a/build/ci/github_actions/setup_ci_dependencies.sh +++ b/build/ci/github_actions/setup_ci_dependencies.sh @@ -1,10 +1,7 @@ #!/bin/bash -xe set +o pipefail -echo "------------------------------" -echo $GITHUB_HEAD_REF -echo "------------------------------" -triggering_branch=$(echo $GITHUB_HEAD_REF| sed 's|/|.|g') +triggering_branch=$(echo $GITHUB_REF | sed 's|/|.|g') image_version=${IMAGE_VERSION} build_number=${BUILD_NUMBER} commit_hash=${GITHUB_SHA:0:7} From a79d798d1ad24a4c98af7d5ad8ac3aded4036c55 Mon Sep 17 00:00:00 2001 From: barakda Date: Mon, 26 Jun 2023 13:52:15 +0300 Subject: [PATCH 12/16] branch get test --- build/ci/github_actions/setup_ci_dependencies.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh index 29677870e..c75d0ff4b 100755 --- a/build/ci/github_actions/setup_ci_dependencies.sh +++ b/build/ci/github_actions/setup_ci_dependencies.sh @@ -1,6 +1,7 @@ #!/bin/bash -xe set +o pipefail +echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" triggering_branch=$(echo $GITHUB_REF | sed 's|/|.|g') image_version=${IMAGE_VERSION} build_number=${BUILD_NUMBER} From 2b7724d6bba5408e558c380ff209f365d5684031 Mon Sep 17 00:00:00 2001 From: barakda Date: Mon, 26 Jun 2023 13:54:37 +0300 Subject: [PATCH 13/16] branch get test --- build/ci/github_actions/setup_ci_dependencies.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh index c75d0ff4b..059fc8bec 100755 --- a/build/ci/github_actions/setup_ci_dependencies.sh +++ b/build/ci/github_actions/setup_ci_dependencies.sh @@ -1,8 +1,8 @@ #!/bin/bash -xe set +o pipefail -echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" -triggering_branch=$(echo $GITHUB_REF | sed 's|/|.|g') +#echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" +triggering_branch=$(echo ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}) image_version=${IMAGE_VERSION} build_number=${BUILD_NUMBER} commit_hash=${GITHUB_SHA:0:7} From ffff8cfdb48f79f46bd8ef0fd5cd9e106a468d28 Mon Sep 17 00:00:00 2001 From: barakda Date: Wed, 28 Jun 2023 17:24:22 +0300 Subject: [PATCH 14/16] update before PR --- .github/workflows/operator-builder-ci.yml | 5 +++-- build/ci/github_actions/setup_ci_dependencies.sh | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/operator-builder-ci.yml b/.github/workflows/operator-builder-ci.yml index 517d58ce8..85a7032ac 100644 --- a/.github/workflows/operator-builder-ci.yml +++ b/.github/workflows/operator-builder-ci.yml @@ -3,7 +3,8 @@ name: operator-builder-ci on: push: branches: - - operator_buider_ci_add + - develop + - main pull_request: workflow_dispatch: inputs: @@ -22,7 +23,7 @@ jobs: PRODUCTION: "${{ inputs.production }}" BUILD_NUMBER: "${{ github.run_number }}" GITHUB_SHA: "${{ github.sha }}" - PROD_REPOSITORY: csiblock/ibm-block-csi-operator-staging + PROD_REPOSITORY: csiblock/ibm-block-csi-operator STAGING_REPOSITORY: csiblock/ibm-block-csi-operator-staging steps: - name: Checkout code diff --git a/build/ci/github_actions/setup_ci_dependencies.sh b/build/ci/github_actions/setup_ci_dependencies.sh index 059fc8bec..60d57930e 100755 --- a/build/ci/github_actions/setup_ci_dependencies.sh +++ b/build/ci/github_actions/setup_ci_dependencies.sh @@ -1,7 +1,6 @@ #!/bin/bash -xe set +o pipefail -#echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" triggering_branch=$(echo ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}) image_version=${IMAGE_VERSION} build_number=${BUILD_NUMBER} From dc11fb1243f1b98a87893b1939cd7788616c4955 Mon Sep 17 00:00:00 2001 From: barakda Date: Wed, 28 Jun 2023 17:30:08 +0300 Subject: [PATCH 15/16] remove dockerfile test --- Dockerfile | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 8a8ae4e3b..000000000 --- a/Dockerfile +++ /dev/null @@ -1,45 +0,0 @@ -# Build the manager binary -FROM golang:1.19 as builder -ARG TARGETOS -ARG TARGETARCH - -WORKDIR /workspace -# Copy the Go Modules manifests -COPY go.mod go.mod -COPY go.sum go.sum -# cache deps before building and copying source so that we don't need to re-download as much -# and so that source changes don't invalidate our downloaded layer -RUN go mod download - -# Copy the go source -COPY main.go main.go -COPY api/ api/ -COPY pkg/ pkg/ -COPY controllers/ controllers/ - -# Build -RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o manager main.go - -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7-1107 - -ARG VERSION=1.11.0 -ARG BUILD_NUMBER=0 - -###Required Labels -LABEL name="IBM block CSI operator" \ - vendor="IBM" \ - version=$VERSION \ - release=$BUILD_NUMBER \ - summary="Manage objects in kubernetes and openshift" \ - description="The IBM block CSI operator enables container orchestrators to use objects and to manage them in their storage." \ - io.k8s.display-name="IBM block CSI operator" \ - io.k8s.description="The IBM block CSI operator enables container orchestrators to use objects and to manage them in their storage." \ - io.openshift.tags=ibm,csi,volume-group-operator - -COPY ./LICENSE /licenses/ - -WORKDIR / -COPY --from=builder /workspace/manager . -USER 65532:65532 - -ENTRYPOINT ["/manager"] From e3c2834a106e15d321c47c0560738d7cdc30ceda Mon Sep 17 00:00:00 2001 From: barakda Date: Thu, 29 Jun 2023 14:27:30 +0300 Subject: [PATCH 16/16] csv multi-arch support --- .../ibm-block-csi-operator.clusterserviceversion.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/deploy/olm-catalog/ibm-block-csi-operator/1.12.0/manifests/ibm-block-csi-operator.clusterserviceversion.yaml b/deploy/olm-catalog/ibm-block-csi-operator/1.12.0/manifests/ibm-block-csi-operator.clusterserviceversion.yaml index 57daf012e..8dd92501a 100644 --- a/deploy/olm-catalog/ibm-block-csi-operator/1.12.0/manifests/ibm-block-csi-operator.clusterserviceversion.yaml +++ b/deploy/olm-catalog/ibm-block-csi-operator/1.12.0/manifests/ibm-block-csi-operator.clusterserviceversion.yaml @@ -37,6 +37,8 @@ metadata: "operator": "In", "values": [ "amd64" + "s390x", + "ppc64le" ] } ] @@ -61,6 +63,8 @@ metadata: "operator": "In", "values": [ "amd64" + "s390x", + "ppc64le" ] } ] @@ -158,6 +162,8 @@ metadata: "operator": "In", "values": [ "amd64" + "s390x", + "ppc64le" ] } ] @@ -622,6 +628,8 @@ spec: operator: In values: - amd64 + - s390x + - ppc64le containers: - name: ibm-block-csi-operator resources: