Skip to content

Commit 69cb0bb

Browse files
committed
Download the "controller-gen" tool in its own target
The script in "hack/" is counter-intuitive to me now. Development tools and their versions are now in the Makefile.
1 parent 0ebdef0 commit 69cb0bb

File tree

3 files changed

+32
-46
lines changed

3 files changed

+32
-46
lines changed

Makefile

+31-10
Original file line numberDiff line numberDiff line change
@@ -269,23 +269,24 @@ generate: generate-deepcopy
269269
generate: generate-rbac
270270

271271
.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) \
274275
crd:crdVersions='v1' \
275276
paths='./pkg/apis/...' \
276277
output:dir='build/crd/postgresclusters/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
277278
@
278-
GOBIN='$(CURDIR)/hack/tools' ./hack/controller-generator.sh \
279+
$(CONTROLLER) \
279280
crd:crdVersions='v1' \
280281
paths='./pkg/apis/...' \
281282
output:dir='build/crd/pgupgrades/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
282283
@
283-
GOBIN='$(CURDIR)/hack/tools' ./hack/controller-generator.sh \
284+
$(CONTROLLER) \
284285
crd:crdVersions='v1' \
285286
paths='./pkg/apis/...' \
286287
output:dir='build/crd/pgadmins/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
287288
@
288-
GOBIN='$(CURDIR)/hack/tools' ./hack/controller-generator.sh \
289+
$(CONTROLLER) \
289290
crd:crdVersions='v1' \
290291
paths='./pkg/apis/...' \
291292
output:dir='build/crd/crunchybridgeclusters/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
@@ -296,15 +297,35 @@ generate-crd: ## Generate crd
296297
kubectl kustomize ./build/crd/crunchybridgeclusters > ./config/crd/bases/postgres-operator.crunchydata.com_crunchybridgeclusters.yaml
297298

298299
.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) \
301303
object:headerFile='hack/boilerplate.go.txt' \
302304
paths='./pkg/apis/postgres-operator.crunchydata.com/...'
303305

304306
.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])
308329

309330
##@ Release
310331

hack/controller-generator.sh

-27
This file was deleted.

hack/generate-rbac.sh

+1-9
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,7 @@
1515

1616
set -eu
1717

18-
declare -r paths="$1" directory="$2"
19-
20-
# Use `controller-gen` to parse Go markers.
21-
( set -x
22-
"${BASH_SOURCE[0]%/*}/controller-generator.sh" \
23-
rbac:roleName='generated' \
24-
paths="${paths}" \
25-
output:dir="${directory}" # ${directory}/role.yaml
26-
)
18+
declare -r directory="$1"
2719

2820
# NOTE(cbandy): `kustomize` v4.1 and `kubectl` v1.22 will be able to change the
2921
# kind of a resource: https://pr.k8s.io/101120

0 commit comments

Comments
 (0)