@@ -61,8 +61,7 @@ CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen
6161ENVTEST  ?= $(LOCALBIN ) /setup-envtest
6262GOTESTSUM  ?= $(LOCALBIN ) /gotestsum
6363GOLANGCILINT  ?= $(LOCALBIN ) /golangci-lint
64- 
65- 
64+ HELM  ?= $(LOCALBIN ) /helm
6665
6766# # Tool Versions
6867KUSTOMIZE_VERSION  ?= v5.4.1
@@ -261,14 +260,36 @@ dev-apply-metric-dynatrace-prod: ## Apply metric using Dynatrace production exam
261260
262261# ----------------------------------------------------------------------------------------------
263262# #@ Helm
263+ 
264+ HELM_VERSION  ?= v3.18.0
265+ OCI_REGISTRY  ?= ghcr.io/sap/charts
266+ 
267+ $(HELM ) $(LOCALBIN ) 
268+ 	@if test  -x $(LOCALBIN ) /helm &&  !  $(LOCALBIN ) /helm version --short |  grep -q $(HELM_VERSION ) ;  then  \ 
269+ 		echo  " $( LOCALBIN) $( HELM_VERSION) " ;  \ 
270+ 		rm -rf $(LOCALBIN ) /helm;  \ 
271+ 	fi 
272+ 	test  -s $(LOCALBIN ) /helm ||  (curl -sSL https://get.helm.sh/helm-$( HELM_VERSION) $( shell uname |  tr ' [:upper:]' ' [:lower:]' ) |  tar xz -C /tmp &&  \
273+ 	mv /tmp/$(shell  uname | tr '[:upper:]' '[:lower:]') -amd64/helm $(LOCALBIN ) /helm &&  \ 
274+ 	chmod +x $(LOCALBIN ) /helm &&  \ 
275+ 	rm -rf /tmp/$(shell  uname | tr '[:upper:]' '[:lower:]') -amd64)
276+ 
277+ .PHONY : helm-package
278+ helm-package : $(HELM )  helm-chart
279+ 	$(LOCALBIN ) /helm package charts/$(PROJECT_FULL_NAME ) / -d ./ --version $(shell  cat VERSION)  
280+ 
281+ .PHONY : helm-push
282+ helm-push : $(HELM ) 
283+ 	$(LOCALBIN ) /helm push $(PROJECT_FULL_NAME ) -$(shell  cat VERSION) .tgz oci://$(OCI_REGISTRY ) 
284+ 
264285.PHONY : helm-chart
265286helm-chart : # # Generate Helm chart files from templates.
266287	OPERATOR_VERSION=$(shell  cat VERSION)  envsubst <  charts/$(PROJECT_FULL_NAME ) /Chart.yaml.tpl >  charts/$(PROJECT_FULL_NAME ) /Chart.yaml
267288	OPERATOR_VERSION=$(shell  cat VERSION)  envsubst <  charts/$(PROJECT_FULL_NAME ) /values.yaml.tpl >  charts/$(PROJECT_FULL_NAME ) /values.yaml
268289
269290.PHONY : helm-install-local
270- helm-install-local : # # Install the Helm chart locally using the Docker image
271- 	helm upgrade --install $(PROJECT_FULL_NAME )  charts/$(PROJECT_FULL_NAME ) / --set image.repository=$(IMG_BASE )  --set image.tag=$(IMG_VERSION )  --set image.pullPolicy=Never
291+ helm-install-local : $( HELM )   # # Install the Helm chart locally using the Docker image
292+ 	$( LOCALBIN ) / helm upgrade --install $(PROJECT_FULL_NAME )  charts/$(PROJECT_FULL_NAME ) / --set image.repository=$(IMG_BASE )  --set image.tag=$(IMG_VERSION )  --set image.pullPolicy=Never
272293	$(KIND )  load docker-image ${IMG}  --name=$(PROJECT_FULL_NAME ) -dev
273294
274295# ----------------------------------------------------------------------------------------------
0 commit comments