@@ -104,32 +104,38 @@ operator-yaml: manifests kustomize
104
104
undeploy : # # Undeploy controller from the K8s cluster specified in ~/.kube/config.
105
105
$(KUSTOMIZE ) build config/default | kubectl delete -f -
106
106
107
+ # #@ Build Dependencies
108
+
109
+ # # Location to install dependencies to
110
+ LOCALBIN ?= $(shell pwd) /bin
111
+ $(LOCALBIN ) :
112
+ mkdir -p $(LOCALBIN )
113
+
114
+ # # Tool Binaries
115
+ KUSTOMIZE ?= $(LOCALBIN ) /kustomize
116
+ CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen
117
+ ENVTEST ?= $(LOCALBIN ) /setup-envtest
118
+
119
+ # # Tool Versions
120
+ KUSTOMIZE_VERSION ?= v3.8.7
121
+ CONTROLLER_TOOLS_VERSION ?= v0.6.1
122
+
123
+ KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
124
+ .PHONY : kustomize
125
+ kustomize : $(KUSTOMIZE ) # # Download kustomize locally if necessary.
126
+ $(KUSTOMIZE ) : $(LOCALBIN )
127
+ curl -s $(KUSTOMIZE_INSTALL_SCRIPT ) | bash -s -- $(subst v,,$(KUSTOMIZE_VERSION ) ) $(LOCALBIN )
128
+
129
+ .PHONY : controller-gen
130
+ controller-gen : $(CONTROLLER_GEN ) # # Download controller-gen locally if necessary.
131
+ $(CONTROLLER_GEN ) : $(LOCALBIN )
132
+ GOBIN=$(LOCALBIN ) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION )
133
+
134
+ .PHONY : envtest
135
+ envtest : $(ENVTEST ) # # Download envtest-setup locally if necessary.
136
+ $(ENVTEST ) : $(LOCALBIN )
137
+ GOBIN=$(LOCALBIN ) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
107
138
108
- CONTROLLER_GEN = $(shell pwd) /bin/controller-gen
109
- controller-gen : # # Download controller-gen locally if necessary.
110
- $(call go-get-tool,$(CONTROLLER_GEN ) ,sigs.k8s.io/controller-tools/cmd/controller-gen@v0.6.1)
111
-
112
- KUSTOMIZE = $(shell pwd) /bin/kustomize
113
- kustomize : # # Download kustomize locally if necessary.
114
- $(call go-get-tool,$(KUSTOMIZE ) ,sigs.k8s.io/kustomize/kustomize/v3@v3.8.7)
115
-
116
- ENVTEST = $(shell pwd) /bin/setup-envtest
117
- envtest : # # Download envtest-setup locally if necessary.
118
- $(call go-get-tool,$(ENVTEST ) ,sigs.k8s.io/controller-runtime/tools/setup-envtest@latest)
119
-
120
- # go-get-tool will 'go get' any package $2 and install it to $1.
121
- PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST ) ) ) )
122
- define go-get-tool
123
- @[ -f $(1 ) ] || { \
124
- set -e ;\
125
- TMP_DIR=$$(mktemp -d ) ;\
126
- cd $$TMP_DIR ;\
127
- go mod init tmp ;\
128
- echo "Downloading $(2 ) " ;\
129
- GOBIN=$(PROJECT_DIR ) /bin go get $(2 ) ;\
130
- rm -rf $$TMP_DIR ;\
131
- }
132
- endef
133
139
134
140
.PHONY : bundle
135
141
bundle : manifests kustomize # # Generate bundle manifests and metadata, then validate generated files.
@@ -186,3 +192,4 @@ catalog-build: opm ## Build a catalog image.
186
192
.PHONY : catalog-push
187
193
catalog-push : # # Push a catalog image.
188
194
$(MAKE ) docker-push IMG=$(CATALOG_IMG )
195
+
0 commit comments