@@ -46,6 +46,17 @@ IMAGE_TAG_BASE ?= splunk/splunk-operator
4646# You can use it as an arg. (E.g make bundle-build BUNDLE_IMG=<some-registry>/<project-name-bundle>:<tag>)
4747BUNDLE_IMG ?= $(IMAGE_TAG_BASE ) -bundle:v$(VERSION )
4848
49+ # BUNDLE_GEN_FLAGS are the flags passed to the operator-sdk generate bundle command
50+ BUNDLE_GEN_FLAGS ?= -q --overwrite --version $(VERSION ) $(BUNDLE_METADATA_OPTS )
51+
52+ # USE_IMAGE_DIGESTS defines if images are resolved via tags or digests
53+ # You can enable this value if you would like to use SHA Based Digests
54+ # To enable set flag to true
55+ USE_IMAGE_DIGESTS ?= false
56+ ifeq ($(USE_IMAGE_DIGESTS ) , true)
57+ BUNDLE_GEN_FLAGS += --use-image-digests
58+ endif
59+
4960# Image URL to use all building/pushing image targets
5061IMG ?= controller:latest
5162# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
@@ -158,31 +169,37 @@ undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/confi
158169 $(KUSTOMIZE ) build config/default | kubectl delete -f -
159170
160171
161- CONTROLLER_GEN = $(shell pwd) /bin/controller-gen
162- controller-gen : # # Download controller-gen locally if necessary.
163- $(call go-get-tool,$(CONTROLLER_GEN ) ,sigs.k8s.io/controller-tools/cmd/[email protected] ) 164-
165- KUSTOMIZE = $(shell pwd) /bin/kustomize
166- kustomize : # # Download kustomize locally if necessary.
167- $(call go-get-tool,$(KUSTOMIZE ) ,sigs.k8s.io/kustomize/kustomize/[email protected] ) 168-
169- ENVTEST = $(shell pwd) /bin/setup-envtest
170- envtest : # # Download envtest-setup locally if necessary.
171- $(call go-get-tool,$(ENVTEST ) ,sigs.k8s.io/controller-runtime/tools/setup-envtest@latest)
172-
173- # go-get-tool will 'go get' any package $2 and install it to $1.
174- PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST ) ) ) )
175- define go-get-tool
176- @[ -f $(1 ) ] || { \
177- set -e ;\
178- TMP_DIR=$$(mktemp -d ) ;\
179- cd $$TMP_DIR ;\
180- go mod init tmp ;\
181- echo "Downloading $(2 ) " ;\
182- GOBIN=$(PROJECT_DIR ) /bin go get $(2 ) ;\
183- rm -rf $$TMP_DIR ;\
184- }
185- endef
172+ # #@ Build Dependencies
173+
174+ # # Location to install dependencies to
175+ LOCALBIN ?= $(shell pwd) /bin
176+ $(LOCALBIN ) :
177+ mkdir -p $(LOCALBIN )
178+
179+ # # Tool Binaries
180+ KUSTOMIZE ?= $(LOCALBIN ) /kustomize
181+ CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen
182+ ENVTEST ?= $(LOCALBIN ) /setup-envtest
183+
184+ # # Tool Versions
185+ KUSTOMIZE_VERSION ?= v3.8.7
186+ CONTROLLER_TOOLS_VERSION ?= v0.8.0
187+
188+ KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
189+ .PHONY : kustomize
190+ kustomize : $(KUSTOMIZE ) # # Download kustomize locally if necessary.
191+ $(KUSTOMIZE ) : $(LOCALBIN )
192+ curl -s $(KUSTOMIZE_INSTALL_SCRIPT ) | bash -s -- $(subst v,,$(KUSTOMIZE_VERSION ) ) $(LOCALBIN )
193+
194+ .PHONY : controller-gen
195+ controller-gen : $(CONTROLLER_GEN ) # # Download controller-gen locally if necessary.
196+ $(CONTROLLER_GEN ) : $(LOCALBIN )
197+ GOBIN=$(LOCALBIN ) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION )
198+
199+ .PHONY : envtest
200+ envtest : $(ENVTEST ) # # Download envtest-setup locally if necessary.
201+ $(ENVTEST ) : $(LOCALBIN )
202+ GOBIN=$(LOCALBIN ) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
186203
187204.PHONY : bundle
188205bundle : manifests kustomize # # Generate bundle manifests and metadata, then validate generated files.
@@ -191,7 +208,7 @@ bundle: manifests kustomize ## Generate bundle manifests and metadata, then vali
191208 $(SED ) " s/namespace: splunk-operator/namespace: ${NAMESPACE} /g" config/default/kustomization.yaml
192209 $(SED ) " s|SPLUNK_ENTERPRISE_IMAGE|${SPLUNK_ENTERPRISE_IMAGE} |g" config/default/kustomization.yaml
193210 cd config/manager && $(KUSTOMIZE ) edit set image controller=$(IMG )
194- $(KUSTOMIZE ) build config/manifests | operator-sdk generate bundle -q --overwrite --version $( VERSION ) $( BUNDLE_METADATA_OPTS )
211+ $(KUSTOMIZE ) build config/manifests | operator-sdk generate bundle $( BUNDLE_GEN_FLAGS )
195212 operator-sdk bundle validate ./bundle
196213
197214.PHONY : bundle-build
@@ -345,4 +362,4 @@ clean: stop_clair_scanner
345362 @rm -rf ./build/_output
346363 @docker rmi $(IMG ) || true
347364 @rm -f clair-scanner
348- @rm -rf clair-scanner-logs
365+ @rm -rf clair-scanner-logs
0 commit comments