@@ -295,6 +295,51 @@ undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/confi
295295	$(KUSTOMIZE )  build config/default/k8s |  \ 
296296		kubectl delete --ignore-not-found=$(ignore-not-found )  -f -
297297
298+ # #@ Helm Deployment
299+ 
300+ HELM_CHART_DIR  := manifests/helm/kepler-operator
301+ HELM_RELEASE_NAME  ?= kepler-operator
302+ HELM_NAMESPACE  ?= kepler-operator
303+ HELM_TIMEOUT  ?= 2m
304+ 
305+ .PHONY : helm-template
306+ helm-template : helm manifests # # Generate manifests from Helm chart
307+ 	$(HELM )  template $(HELM_RELEASE_NAME )  $(HELM_CHART_DIR )  \ 
308+ 		--namespace $(HELM_NAMESPACE )  \ 
309+ 		--set operator.image=$(OPERATOR_IMG )  \ 
310+ 		--set kepler.image=$(KEPLER_IMG )  \ 
311+ 		--set kube-rbac-proxy.image=$(KUBE_RBAC_PROXY_IMG ) 
312+ 
313+ .PHONY : helm-install
314+ helm-install : helm manifests helm-sync-crds # # Install operator via Helm
315+ 	$(HELM )  upgrade --install $(HELM_RELEASE_NAME )  $(HELM_CHART_DIR )  \ 
316+ 		--namespace $(HELM_NAMESPACE )  \ 
317+ 		--create-namespace \ 
318+ 		--set operator.image=$(OPERATOR_IMG )  \ 
319+ 		--set kepler.image=$(KEPLER_IMG )  \ 
320+ 		--set kube-rbac-proxy.image=$(KUBE_RBAC_PROXY_IMG )  \ 
321+ 		--timeout $(HELM_TIMEOUT )  \ 
322+ 		--wait
323+ 
324+ .PHONY : helm-uninstall
325+ helm-uninstall : helm # # Uninstall operator via Helm
326+ 	$(HELM )  uninstall $(HELM_RELEASE_NAME )  --namespace $(HELM_NAMESPACE ) 
327+ 
328+ .PHONY : helm-package
329+ helm-package : helm manifests helm-sync-crds # # Package the Helm chart
330+ 	$(HELM )  package $(HELM_CHART_DIR )  --destination tmp/
331+ 
332+ .PHONY : helm-sync-crds
333+ helm-sync-crds : # # Sync CRDs from config/crd/bases to Helm chart
334+ 	@mkdir -p $(HELM_CHART_DIR ) /crds
335+ 	cp config/crd/bases/* .yaml $(HELM_CHART_DIR ) /crds/
336+ 	@echo " ✅ CRDs synced to Helm chart" 
337+ 
338+ .PHONY : helm-validate
339+ helm-validate : kustomize helm yq # # Validate Helm chart (syntax, templates, CRD sync, resources)
340+ 	@echo " Validating Helm chart against kustomize..." 
341+ 	./hack/helm/validate.sh
342+ 
298343# #@ Build Dependencies
299344
300345# # Location where binaries are installed
@@ -304,11 +349,13 @@ LOCALBIN ?= $(shell pwd)/tmp/bin
304349KUSTOMIZE  ?= $(LOCALBIN ) /kustomize
305350CONTROLLER_GEN  ?= $(LOCALBIN ) /controller-gen
306351CRDOC  ?= $(LOCALBIN ) /crdoc
352+ HELM  ?= $(LOCALBIN ) /helm
307353
308354#  NOTE: please keep this list sorted so that it can be easily searched
309355TOOLS  = controller-gen \ 
310356		crdoc \ 
311357		govulncheck \ 
358+ 		helm \ 
312359		jq \ 
313360		kubectl \ 
314361		kustomize \ 
0 commit comments