Skip to content

Commit

Permalink
Update release scripts
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
pjuarezd committed Dec 9, 2024
1 parent b5dd4cf commit 3618aad
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 44 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
88 changes: 45 additions & 43 deletions release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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
Expand Down

0 comments on commit 3618aad

Please sign in to comment.