@@ -25,7 +25,11 @@ IMAGE_REGISTRY ?= $(STAGING_IMAGE_REGISTRY)/jobset
2525IMAGE_NAME := jobset
2626IMAGE_REPO ?= $(IMAGE_REGISTRY ) /$(IMAGE_NAME )
2727IMAGE_TAG ?= $(IMAGE_REPO ) :$(GIT_TAG )
28+
29+ # Helm
2830HELM_CHART_REPO := $(STAGING_IMAGE_REGISTRY ) /jobset/charts
31+ RELEASE_NAME ?= jobset
32+ RELEASE_NAMESPACE ?= jobset-system
2933
3034# Use distroless as minimal base image to package the manager binary
3135# Refer to https://github.com/GoogleContainerTools/distroless for more details
@@ -203,6 +207,11 @@ undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/confi
203207 $(KUSTOMIZE ) build config/default | kubectl delete --ignore-not-found=$(ignore-not-found ) -f -
204208
205209# #@ Helm
210+
211+ .PHONY : sync-manifests
212+ sync-manifests : helm yq # # Sync Kustomize manifests from manifests templated by Helm chart.
213+ RELEASE_NAME=$(RELEASE_NAME ) RELEASE_NAMESPACE=$(RELEASE_NAMESPACE ) HELM=$(HELM ) YQ=$(YQ ) hack/sync-manifests.sh
214+
206215.PHONY : helm-unittest
207216helm-unittest : helm-unittest-plugin # # Run Helm chart unittests.
208217 $(HELM ) unittest $(JOBSET_CHART_DIR ) --strict --file " tests/**/*_test.yaml"
@@ -219,8 +228,8 @@ helm-docs: helm-docs-plugin ## Generates markdown documentation for helm charts
219228helm-chart-push : yq helm
220229 EXTRA_TAG=" $( EXTRA_TAG) " GIT_TAG=" $( GIT_TAG) " IMAGE_REGISTRY=" $( IMAGE_REGISTRY) " HELM_CHART_REPO=" $( HELM_CHART_REPO) " IMAGE_REPO=" $( IMAGE_REPO) " HELM=" $( HELM) " YQ=" $( YQ) " ./hack/push-chart.sh
221230
222-
223231# #@ Release
232+
224233.PHONY : artifacts
225234artifacts : kustomize helm
226235 cd config/components/manager && $(KUSTOMIZE ) edit set image controller=${IMAGE_TAG}
@@ -267,16 +276,22 @@ $(LOCALBIN):
267276# # Tool Versions
268277KUSTOMIZE_VERSION ?= v3.8.7
269278CONTROLLER_TOOLS_VERSION ?= v0.17.2
279+ GINKGO_VERSION ?= v2.1.4
280+ KIND_VERSION ?= v0.23.0
270281HELM_VERSION ?= v3.17.1
271282HELM_UNITTEST_VERSION ?= 0.7.2
272283HELM_DOCS_VERSION ?= v1.14.2
284+ YQ_VERSION ?= v4.45.1
273285
274286# # Tool Binaries
275287KUSTOMIZE ?= $(LOCALBIN ) /kustomize
276288CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen
277289ENVTEST ?= $(LOCALBIN ) /setup-envtest
278- HELM ?= $(ARTIFACTS ) /helm
279- HELM_DOCS ?= $(ARTIFACTS ) /helm-docs
290+ GINKGO = $(LOCALBIN ) /ginkgo
291+ KIND = $(LOCALBIN ) /kind
292+ HELM ?= $(LOCALBIN ) /helm
293+ HELM_DOCS ?= $(LOCALBIN ) /helm-docs
294+ YQ ?= $(LOCALBIN ) /yq
280295
281296KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
282297.PHONY : kustomize
@@ -317,15 +332,13 @@ envtest: $(ENVTEST) ## Download envtest-setup locally if necessary.
317332$(ENVTEST ) : $(LOCALBIN )
318333 test -s $(LOCALBIN ) /setup-envtest || GOBIN=$(LOCALBIN ) $(GO_CMD ) install sigs.k8s.io/controller-runtime/tools/setup-envtest@v0.0.0-20240813183042-b901db121e1f
319334
320- GINKGO = $(shell pwd) /bin/ginkgo
321335.PHONY : ginkgo
322336ginkgo : # # Download ginkgo locally if necessary.
323- @GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on $(GO_CMD ) install github.com/onsi/ginkgo/v2/ginkgo@v2.1.4
337+ @GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on $(GO_CMD ) install github.com/onsi/ginkgo/v2/ginkgo@$( GINKGO_VERSION )
324338
325- KIND = $(shell pwd) /bin/kind
326339.PHONY : kind
327340kind :
328- @GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on $(GO_CMD ) install sigs.k8s.io/kind@v0.23.0
341+ @GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on $(GO_CMD ) install sigs.k8s.io/kind@$( KIND_VERSION )
329342
330343.PHONY : kind-image-build
331344kind-image-build : PLATFORMS=linux/amd64
@@ -345,7 +358,6 @@ test-e2e-kind: manifests kustomize fmt vet envtest ginkgo kind-image-build
345358prometheus :
346359 kubectl apply --server-side -k config/prometheus
347360
348- HELM = $(PROJECT_DIR ) /bin/helm
349361.PHONY : helm
350362helm : # # Download helm locally if necessary.
351363 GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on $(GO_CMD ) install helm.sh/helm/v3/cmd/helm@$(HELM_VERSION )
@@ -362,8 +374,6 @@ helm-docs-plugin: $(HELM_DOCS) ## Download helm-docs plugin locally if necessary
362374$(HELM_DOCS ) : $(LOCALBIN )
363375 GOBIN=$(LOCALBIN ) $(GO_CMD ) install github.com/norwoodj/helm-docs/cmd/helm-docs@$(HELM_DOCS_VERSION )
364376
365- YQ = $(PROJECT_DIR ) /bin/yq
366377.PHONY : yq
367378yq : # # Download yq locally if necessary.
368- GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on $(GO_CMD ) install github.com/mikefarah/yq/v4@v4.45.1
369-
379+ GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on $(GO_CMD ) install github.com/mikefarah/yq/v4@$(YQ_VERSION )
0 commit comments