From 3bf822727c23142968f08ad8d6b1a474c4b98f30 Mon Sep 17 00:00:00 2001
From: pjuarezd <pjuarezd@users.noreply.github.com>
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, 45 insertions(+), 45 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..aa5af8361a4 100755
--- a/release.sh
+++ b/release.sh
@@ -4,49 +4,52 @@ 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)
 KES_RELEASE=$(get_latest_release minio/kes)
-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)
 
 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 +58,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