From 3618aad5a3a72d2701430168a2479bd6851b1dae Mon Sep 17 00:00:00 2001 From: pjuarezd Date: Mon, 9 Dec 2024 10:57:26 -0800 Subject: [PATCH] Update release scripts * Update controller-gen 0.16.5 * Add `sed_inplace` method in bash script to make the sed syntax compatible in Linux and MacOS * Remove files that reference MCJob in release.sh --- Makefile | 2 +- release.sh | 88 ++++++++++++++++++++++++++++-------------------------- 2 files changed, 46 insertions(+), 44 deletions(-) diff --git a/Makefile b/Makefile index 1524d478a98..ce947b28974 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ clean: @rm -rf dist/ regen-crd: - @go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.15.0 + @go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.16.5 @${GOPATH}/bin/controller-gen crd:maxDescLen=0,generateEmbeddedObjectMeta=true webhook paths="./..." output:crd:artifacts:config=$(KUSTOMIZE_CRDS) @sed 's#namespace: minio-operator#namespace: {{ .Release.Namespace }}#g' resources/base/crds/minio.min.io_tenants.yaml > $(HELM_TEMPLATES)/minio.min.io_tenants.yaml @sed 's#namespace: minio-operator#namespace: {{ .Release.Namespace }}#g' resources/base/crds/sts.min.io_policybindings.yaml > $(HELM_TEMPLATES)/sts.min.io_policybindings.yaml diff --git a/release.sh b/release.sh index 0436b378496..f0c1df3ed95 100755 --- a/release.sh +++ b/release.sh @@ -4,21 +4,28 @@ set -e # Parse command line arguments while [[ "$#" -gt 0 ]]; do - case $1 in - --release-sidecar) - RELEASE_SIDECAR="$2" - shift 2 - ;; - *) - ;; - esac - shift + case $1 in + --release-sidecar) + RELEASE_SIDECAR="$2" + shift 2 + ;; + *) ;; + esac + shift done +sed_inplace() { + if [[ "$OSTYPE" == "darwin"* ]]; then + sed -i "" -E "$@" + else + sed -i -r "$@" + fi +} + get_latest_release() { - curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api - grep '"tag_name":' | # Get tag line - sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value + curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api + grep '"tag_name":' | # Get tag line + sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value } MINIO_RELEASE=$(get_latest_release minio/minio) @@ -27,26 +34,24 @@ MC_RELEASE=$(get_latest_release minio/mc) MINIO_CURRENT_RELEASE=$(sed -nr 's/.*(minio\/minio\:)([v]?.*)"/\2/p' pkg/apis/minio.min.io/v2/constants.go) KES_CURRENT_RELEASE=$(sed -nr 's/.*(minio\/kes\:)([v]?.*)"/\2/p' pkg/apis/minio.min.io/v2/constants.go) +MC_CURRENT_RELEASE=$(sed -nr 's/.*(minio\/mc\:)([v]?.*)"/\2/p' pkg/apis/minio.min.io/v2/constants.go) files=( - "README.md" - "pkg/apis/job.min.io/v1alpha1/types.go" - "docs/tenant_crd.adoc" - "docs/policybinding_crd.adoc" - "docs/job_crd.adoc" - "docs/minio-job.md" - "docs/templates/asciidoctor/gv_list.tpl" - "examples/kustomization/base/tenant.yaml" - "examples/kustomization/tenant-certmanager-kes/tenant.yaml" - "examples/kustomization/tenant-kes-encryption/tenant.yaml" - "helm/operator/Chart.yaml" - "helm/operator/values.yaml" - "helm/tenant/Chart.yaml" - "helm/tenant/values.yaml" - "pkg/apis/minio.min.io/v2/constants.go" - "pkg/controller/operator.go" - "resources/base/deployment.yaml" - "testing/console-tenant+kes.sh" + "README.md" + "docs/tenant_crd.adoc" + "docs/policybinding_crd.adoc" + "docs/templates/asciidoctor/gv_list.tpl" + "examples/kustomization/base/tenant.yaml" + "examples/kustomization/tenant-certmanager-kes/tenant.yaml" + "examples/kustomization/tenant-kes-encryption/tenant.yaml" + "helm/operator/Chart.yaml" + "helm/operator/values.yaml" + "helm/tenant/Chart.yaml" + "helm/tenant/values.yaml" + "pkg/apis/minio.min.io/v2/constants.go" + "pkg/controller/operator.go" + "resources/base/deployment.yaml" + "testing/console-tenant+kes.sh" ) CURRENT_RELEASE=$(get_latest_release minio/operator) @@ -55,36 +60,33 @@ CURRENT_RELEASE="${CURRENT_RELEASE:1}" echo "Upgrade: $CURRENT_RELEASE => $RELEASE" echo "MinIO: $MINIO_RELEASE => $MINIO_RELEASE" echo "KES: $KES_CURRENT_RELEASE => $KES_RELEASE" -echo "MC: $MC_CURRENT_RELEASE => $MC_RELEASE" if [ -z "$MINIO_RELEASE" ]; then - echo "\$MINIO_RELEASE is empty" - exit 0 + echo "\$MINIO_RELEASE is empty" + exit 0 fi for file in "${files[@]}"; do - sed -i -e "s/${KES_CURRENT_RELEASE}/${KES_RELEASE}/g" "$file" - sed -i -e "s/${MC_CURRENT_RELEASE}/${MC_RELEASE}/g" "$file" - sed -i -e "s/${CURRENT_RELEASE}/${RELEASE}/g" "$file" - sed -i -e "s/${MINIO_CURRENT_RELEASE}/${MINIO_RELEASE}/g" "$file" + sed_inplace "s/${KES_CURRENT_RELEASE}/${KES_RELEASE}/g" "$file" + sed_inplace "s/${CURRENT_RELEASE}/${RELEASE}/g" "$file" + sed_inplace "s/${MINIO_CURRENT_RELEASE}/${MINIO_RELEASE}/g" "$file" done annotations_files=( - "pkg/apis/job.min.io/v1alpha1/types.go" - "pkg/apis/minio.min.io/v2/types.go" - "pkg/apis/sts.min.io/v1beta1/types.go" + "pkg/apis/minio.min.io/v2/types.go" + "pkg/apis/sts.min.io/v1beta1/types.go" ) for file in "${annotations_files[@]}"; do - sed -i -e "s~operator.min.io/version=.*~operator.min.io/version=v${RELEASE}~g" "$file" + sed_inplace "s~operator.min.io/version=.*~operator.min.io/version=v${RELEASE}~g" "$file" done # Update annotation in kustomization yaml -sed -i -e "s~operator.min.io/version: .*~operator.min.io/version: v${RELEASE}~g" "resources/kustomization.yaml" +sed_inplace "s~operator.min.io/version: .*~operator.min.io/version: v${RELEASE}~g" "resources/kustomization.yaml" if [ "${RELEASE_SIDECAR}" = "true" ]; then - sed -i -e 's~quay.io/minio/operator-sidecar:.*\"~quay.io/minio/operator-sidecar:v'$RELEASE'\"~g' "pkg/resources/statefulsets/minio-sidecar.go" + sed_inplace 's~quay.io/minio/operator-sidecar:.*\"~quay.io/minio/operator-sidecar:v'$RELEASE'\"~g' "pkg/resources/statefulsets/minio-sidecar.go" fi # Add all the generated files to git