@@ -269,23 +269,24 @@ generate: generate-deepcopy
269
269
generate : generate-rbac
270
270
271
271
.PHONY : generate-crd
272
- generate-crd : # # Generate crd
273
- GOBIN=' $(CURDIR)/hack/tools' ./hack/controller-generator.sh \
272
+ generate-crd : # # Generate Custom Resource Definitions (CRDs)
273
+ generate-crd : tools/controller-gen
274
+ $(CONTROLLER ) \
274
275
crd:crdVersions=' v1' \
275
276
paths=' ./pkg/apis/...' \
276
277
output:dir=' build/crd/postgresclusters/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
277
278
@
278
- GOBIN= ' $(CURDIR)/hack/tools ' ./hack/controller-generator.sh \
279
+ $( CONTROLLER ) \
279
280
crd:crdVersions=' v1' \
280
281
paths=' ./pkg/apis/...' \
281
282
output:dir=' build/crd/pgupgrades/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
282
283
@
283
- GOBIN= ' $(CURDIR)/hack/tools ' ./hack/controller-generator.sh \
284
+ $( CONTROLLER ) \
284
285
crd:crdVersions=' v1' \
285
286
paths=' ./pkg/apis/...' \
286
287
output:dir=' build/crd/pgadmins/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
287
288
@
288
- GOBIN= ' $(CURDIR)/hack/tools ' ./hack/controller-generator.sh \
289
+ $( CONTROLLER ) \
289
290
crd:crdVersions=' v1' \
290
291
paths=' ./pkg/apis/...' \
291
292
output:dir=' build/crd/crunchybridgeclusters/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
@@ -296,15 +297,35 @@ generate-crd: ## Generate crd
296
297
kubectl kustomize ./build/crd/crunchybridgeclusters > ./config/crd/bases/postgres-operator.crunchydata.com_crunchybridgeclusters.yaml
297
298
298
299
.PHONY : generate-deepcopy
299
- generate-deepcopy : # # Generate deepcopy functions
300
- GOBIN=' $(CURDIR)/hack/tools' ./hack/controller-generator.sh \
300
+ generate-deepcopy : # # Generate DeepCopy functions
301
+ generate-deepcopy : tools/controller-gen
302
+ $(CONTROLLER ) \
301
303
object:headerFile=' hack/boilerplate.go.txt' \
302
304
paths=' ./pkg/apis/postgres-operator.crunchydata.com/...'
303
305
304
306
.PHONY : generate-rbac
305
- generate-rbac : # # Generate rbac
306
- GOBIN=' $(CURDIR)/hack/tools' ./hack/generate-rbac.sh \
307
- ' ./internal/...' ' config/rbac'
307
+ generate-rbac : # # Generate RBAC
308
+ generate-rbac : tools/controller-gen
309
+ $(CONTROLLER ) \
310
+ rbac:roleName=' generated' \
311
+ paths=' ./internal/...' \
312
+ output:dir=' config/rbac' # ${directory}/role.yaml
313
+ ./hack/generate-rbac.sh ' config/rbac'
314
+
315
+ # #@ Tools
316
+
317
+ .PHONY : tools
318
+ tools : # # Download tools like controller-gen and kustomize if necessary.
319
+
320
+ # go-get-tool will 'go install' any package $2 and install it to $1.
321
+ define go-get-tool
322
+ @[ -f '$(1 ) ' ] || { echo Downloading '$(2 ) '; GOBIN='$(abspath $(dir $(1 ) ) ) ' $(GO ) install '$(2 ) '; }
323
+ endef
324
+
325
+ CONTROLLER ?= hack/tools/controller-gen
326
+ tools : tools/controller-gen
327
+ tools/controller-gen :
328
+ $(call go-get-tool,$(CONTROLLER ) ,sigs.k8s.io/controller-tools/cmd/[email protected] )
308
329
309
330
# #@ Release
310
331
0 commit comments