@@ -80,25 +80,25 @@ help: ## Display this help.
8080generate : generate-manifests generate-code generate-mock generate-api-docs
8181
8282.PHONY : generate-manifests
83- generate-manifests : controller-gen # # Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
84- $( CONTROLLER_GEN ) rbac:roleName=manager-role crd webhook paths=" ./..." output:crd:artifacts:config=config/crd/bases
83+ generate-manifests : tools # # Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
84+ controller-gen rbac:roleName=manager-role crd webhook paths=" ./..." output:crd:artifacts:config=config/crd/bases
8585
8686.PHONY : generate-code
87- generate-code : controller-gen gowrap # # Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
87+ generate-code : tools # # Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
8888 go generate ./...
89- $( CONTROLLER_GEN ) object:headerFile=" hack/boilerplate.go.txt" paths=" ./..."
89+ controller-gen object:headerFile=" hack/boilerplate.go.txt" paths=" ./..."
9090
9191.PHONY : generate-mock
92- generate-mock : mockgen # # Generate mocks for the Linode API client.
93- $( MOCKGEN ) -source=./clients/clients.go -destination ./mock/client.go -package mock
92+ generate-mock : tools # # Generate mocks for the Linode API client.
93+ mockgen -source=./clients/clients.go -destination ./mock/client.go -package mock
9494
9595.PHONY : generate-flavors # # Generate template flavors.
96- generate-flavors : $( KUSTOMIZE )
96+ generate-flavors :
9797 bash hack/generate-flavors.sh
9898
9999.PHONY : generate-api-docs
100- generate-api-docs : crd-ref-docs # # Generate API reference documentation.
101- $( CRD_REF_DOCS ) \
100+ generate-api-docs : tools # # Generate API reference documentation.
101+ crd-ref-docs \
102102 --config=./docs/.crd-ref-docs.yaml \
103103 --source-path=./api/ \
104104 --renderer=markdown \
@@ -127,19 +127,19 @@ gosec: ## Run gosec against code.
127127 docker run --rm -w /workdir -v $(PWD ) :/workdir securego/gosec:2.19.0 -exclude-dir=bin -exclude-generated ./...
128128
129129.PHONY : lint
130- lint : # # Run lint against code.
131- $( GOLANGCI_LINT ) run -c .golangci.yml
130+ lint : tools # # Run lint against code.
131+ golang-ci-lint run -c .golangci.yml
132132
133133.PHONY : lint
134134lint-api : golangci-lint-kal # # Run lint against code.
135135 $(GOLANGCI_LINT_KAL ) run -c .golangci-kal.yml
136136
137137.PHONY : nilcheck
138- nilcheck : nilaway # # Run nil check against code.
138+ nilcheck : tools # # Run nil check against code.
139139 go list ./... | xargs -I {} -d ' \n' nilaway -include-pkgs {} -exclude-file-docstrings " ignore_autogenerated" ./...
140140
141141.PHONY : vulncheck
142- vulncheck : govulncheck # # Run vulnerability check against code.
142+ vulncheck : tools # # Run vulnerability check against code.
143143 govulncheck ./...
144144
145145.PHONY : docs
@@ -153,22 +153,22 @@ docs:
153153# #@ Testing:
154154
155155.PHONY : test
156- test : generate fmt vet envtest # # Run tests.
157- KUBEBUILDER_ASSETS=" $( shell $( ENVTEST ) use ${ENVTEST_K8S_VERSION # v} --bin-dir $( CACHE_BIN) -p path) " go test -race -timeout 60s ` go list ./... | grep -v ./mock$$ ` -coverprofile cover.out.tmp
156+ test : generate fmt vet # # Run tests.
157+ KUBEBUILDER_ASSETS=" $( shell setup-envtest use 0.20.4 --bin-dir $( CACHE_BIN) -p path) " go test -race -timeout 60s ` go list ./... | grep -v ./mock$$ ` -coverprofile cover.out.tmp
158158 grep -v " zz_generated.*" cover.out.tmp > cover.out
159159 rm cover.out.tmp
160160
161161.PHONY : e2etest
162- e2etest : generate local-release local-deploy chainsaw s5cmd
163- SSE_KEY=$$(openssl rand -base64 32 ) LOCALBIN=$(CACHE_BIN ) $( CHAINSAW ) test ./e2e --parallel 2 --selector $(E2E_SELECTOR ) $(E2E_FLAGS )
162+ e2etest : generate local-release local-deploy
163+ SSE_KEY=$$(openssl rand -base64 32 ) LOCALBIN=$(CACHE_BIN ) chainsaw test ./e2e --parallel 2 --selector $(E2E_SELECTOR ) $(E2E_FLAGS )
164164
165165.PHONY : local-deploy
166- local-deploy : kind-cluster tilt kustomize clusterctl
166+ local-deploy : tools kind-cluster
167167 $(TILT ) ci -f Tiltfile
168168
169169.PHONY : kind-cluster
170- kind-cluster : kind ctlptl
171- $( CTLPTL ) apply -f .tilt/ctlptl-config.yaml
170+ kind-cluster : tools
171+ ctlptl apply -f .tilt/ctlptl-config.yaml
172172
173173# #@ Test Upgrade:
174174
@@ -185,18 +185,18 @@ checkout-last-release:
185185 git checkout $(LAST_RELEASE )
186186
187187.PHONY : last-release-cluster
188- last-release-cluster : kind ctlptl tilt kustomize clusterctl chainsaw kind -cluster checkout-last-release local-release local-deploy
189- LOCALBIN=$(CACHE_BIN ) CLUSTERCTL_CONFIG=$(CLUSTERCTL_CONFIG ) SKIP_CUSTOM_DELETE=true $( CHAINSAW ) test --namespace $(COMMON_NAMESPACE ) --assert-timeout 600s --skip-delete ./e2e/capl-cluster-flavors/kubeadm-capl-cluster
188+ last-release-cluster : kind-cluster checkout-last-release local-release local-deploy
189+ LOCALBIN=$(CACHE_BIN ) CLUSTERCTL_CONFIG=$(CLUSTERCTL_CONFIG ) SKIP_CUSTOM_DELETE=true chainsaw test --namespace $(COMMON_NAMESPACE ) --assert-timeout 600s --skip-delete ./e2e/capl-cluster-flavors/kubeadm-capl-cluster
190190
191191.PHONY : test-upgrade
192192test-upgrade : last-release-cluster checkout-latest-commit
193193 $(MAKE ) local-release
194194 $(MAKE ) local-deploy
195- LOCALBIN=$(CACHE_BIN ) CLUSTERCTL_CONFIG=$(CLUSTERCTL_CONFIG ) $( CHAINSAW ) test --namespace $(COMMON_NAMESPACE ) --assert-timeout 800s ./e2e/capl-cluster-flavors/kubeadm-capl-cluster
195+ LOCALBIN=$(CACHE_BIN ) CLUSTERCTL_CONFIG=$(CLUSTERCTL_CONFIG ) chainsaw test --namespace $(COMMON_NAMESPACE ) --assert-timeout 800s ./e2e/capl-cluster-flavors/kubeadm-capl-cluster
196196
197197.PHONY : clean-kind-cluster
198- clean-kind-cluster : ctlptl
199- $( CTLPTL ) delete -f .tilt/ctlptl-config.yaml
198+ clean-kind-cluster :
199+ ctlptl delete -f .tilt/ctlptl-config.yaml
200200
201201# # --------------------------------------
202202# # Build
@@ -245,8 +245,8 @@ ifndef ignore-not-found
245245endif
246246
247247.PHONY : tilt-cluster
248- tilt-cluster : ctlptl tilt kind clusterctl
249- $( CTLPTL ) apply -f .tilt/ctlptl-config.yaml
248+ tilt-cluster : tools
249+ ctlptl apply -f .tilt/ctlptl-config.yaml
250250 $(TILT ) up
251251
252252# # --------------------------------------
@@ -258,7 +258,7 @@ tilt-cluster: ctlptl tilt kind clusterctl
258258RELEASE_DIR ?= infrastructure-linode
259259
260260.PHONY : release
261- release : kustomize clean-release set-manifest-image release-manifests generate-flavors release-templates release-metadata clean-release-git
261+ release : tools clean-release set-manifest-image release-manifests generate-flavors release-templates release-metadata clean-release-git
262262
263263$(RELEASE_DIR ) :
264264 mkdir -p $(RELEASE_DIR ) /
@@ -277,8 +277,8 @@ set-manifest-image: ## Update kustomize image patch file for default resource.
277277 sed -i' ' -e ' s@image: .*@image: ' " $( REGISTRY) /$( IMAGE_NAME) :$( VERSION) " ' @' ./config/default/manager_image_patch.yaml
278278
279279.PHONY : release-manifests
280- release-manifests : $( KUSTOMIZE ) $(RELEASE_DIR )
281- $( KUSTOMIZE ) build config/default > $(RELEASE_DIR ) /infrastructure-components.yaml
280+ release-manifests : tools $(RELEASE_DIR )
281+ kustomize build config/default > $(RELEASE_DIR ) /infrastructure-components.yaml
282282
283283.PHONY : local-release
284284local-release :
@@ -339,73 +339,31 @@ $(CACHE_BIN):
339339# # --------------------------------------
340340
341341# #@ Tooling Binaries:
342- # setup-envtest does not have devbox support so always use CACHE_BIN
343342
344343KUBECTL ?= $(LOCALBIN ) /kubectl
345- KUSTOMIZE ?= $(LOCALBIN ) /kustomize
346- CTLPTL ?= $(LOCALBIN ) /ctlptl
347344CLUSTERCTL ?= $(LOCALBIN ) /clusterctl
348- CRD_REF_DOCS ?= $(CACHE_BIN ) /crd-ref-docs
349345KUBEBUILDER ?= $(LOCALBIN ) /kubebuilder
350- CONTROLLER_GEN ?= $(CACHE_BIN ) /controller-gen
351- CONVERSION_GEN ?= $(CACHE_BIN ) /conversion-gen
352346TILT ?= $(LOCALBIN ) /tilt
353347KIND ?= $(LOCALBIN ) /kind
354- CHAINSAW ?= $(LOCALBIN ) /chainsaw
355- ENVTEST ?= $(CACHE_BIN ) /setup-envtest
356- NILAWAY ?= $(LOCALBIN ) /nilaway
357- GOVULNC ?= $(LOCALBIN ) /govulncheck
358- MOCKGEN ?= $(LOCALBIN ) /mockgen
359- GOWRAP ?= $(CACHE_BIN ) /gowrap
360- GOLANGCI_LINT ?= $(LOCALBIN ) /golangci-lint
361348GOLANGCI_LINT_KAL ?= $(CACHE_BIN ) /golangci-lint-kube-api-linter
362- S5CMD ?= $(CACHE_BIN ) /s5cmd
363349
364350# # Tool Versions
365- KUSTOMIZE_VERSION ?= v5.4.3
366- CTLPTL_VERSION ?= v0.8.29
367351CLUSTERCTL_VERSION ?= v1.11.1
368- CRD_REF_DOCS_VERSION ?= v0.1.0
369352KUBECTL_VERSION ?= v1.28.0
370353KUBEBUILDER_VERSION ?= v3.15.1
371- CONTROLLER_TOOLS_VERSION ?= v0.16.5
372354TILT_VERSION ?= 0.33.10
373355KIND_VERSION ?= 0.23.0
374- CHAINSAW_VERSION ?= v0.2.11
375- HUSKY_VERSION ?= v0.2.16
376- NILAWAY_VERSION ?= d2274102dc2eab9f77cef849a5470a6ebf983125
377- GOVULNC_VERSION ?= v1.1.1
378- MOCKGEN_VERSION ?= v0.4.0
379- GOWRAP_VERSION ?= v1.4.0
380- S5CMD_VERSION ?= v2.2.2
381- CONVERSION_GEN_VERSION ?= v0.32.2
382- GOLANGCI_LINT_VERSION ?= v2.1.5
383356
384357.PHONY : tools
385- tools : $(KUSTOMIZE ) $(CTLPTL ) $(CLUSTERCTL ) $(KUBECTL ) $(CONTROLLER_GEN ) $(CONVERSION_GEN ) $(TILT ) $(KIND ) $(CHAINSAW ) $(ENVTEST ) $(HUSKY ) $(NILAWAY ) $(GOVULNC ) $(MOCKGEN ) $(GOWRAP )
386-
387-
388- .PHONY : kustomize
389- kustomize : $(KUSTOMIZE ) # # Download kustomize locally if necessary.
390- $(KUSTOMIZE ) : $(LOCALBIN )
391- GOBIN=$(LOCALBIN ) GO111MODULE=on go install sigs.k8s.io/kustomize/kustomize/v5@$(KUSTOMIZE_VERSION )
392-
393- .PHONY : ctlptl
394- ctlptl : $(CTLPTL ) # # Download ctlptl locally if necessary.
395- $(CTLPTL ) : $(LOCALBIN )
396- GOBIN=$(LOCALBIN ) go install github.com/tilt-dev/ctlptl/cmd/ctlptl@$(CTLPTL_VERSION )
358+ tools : $(CLUSTERCTL ) $(KUBECTL ) $(KUBEBUILDER ) $(TILT ) $(KIND )
359+ go install tool
397360
398361.PHONY : clusterctl
399362clusterctl : $(CLUSTERCTL ) # # Download clusterctl locally if necessary.
400363$(CLUSTERCTL ) : $(LOCALBIN )
401364 curl -fsSL https://github.com/kubernetes-sigs/cluster-api/releases/download/$(CLUSTERCTL_VERSION ) /clusterctl-$(OS ) -$(ARCH_SHORT ) -o $(CLUSTERCTL )
402365 chmod +x $(CLUSTERCTL )
403366
404- .PHONY : crd-ref-docs
405- crd-ref-docs : $(CRD_REF_DOCS ) # # Download crd-ref-docs locally if necessary.
406- $(CRD_REF_DOCS ) : $(LOCALBIN )
407- GOBIN=$(CACHE_BIN ) go install github.com/elastic/crd-ref-docs@$(CRD_REF_DOCS_VERSION )
408-
409367.PHONY : kubectl
410368kubectl : $(KUBECTL ) # # Download kubectl locally if necessary.
411369$(KUBECTL ) : $(LOCALBIN )
@@ -418,16 +376,6 @@ $(KUBEBUILDER): $(LOCALBIN)
418376 curl -L -o $(LOCALBIN ) /kubebuilder https://github.com/kubernetes-sigs/kubebuilder/releases/download/$(KUBEBUILDER_VERSION ) /kubebuilder_$(OS ) _$(ARCH_SHORT )
419377 chmod +x $(LOCALBIN ) /kubebuilder
420378
421- .PHONY : controller-gen
422- controller-gen : $(CONTROLLER_GEN ) # # Download controller-gen locally if necessary.
423- $(CONTROLLER_GEN ) : $(LOCALBIN )
424- GOBIN=$(CACHE_BIN ) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION )
425-
426- .PHONY : conversion-gen
427- conversion-gen : $(CONVERSION_GEN ) # # Download conversion-gen locally if necessary.
428- $(CONVERSION_GEN ) : $(LOCALBIN )
429- GOBIN=$(CACHE_BIN ) go install k8s.io/code-generator/cmd/conversion-gen@$(CONVERSION_GEN_VERSION )
430-
431379.PHONY : tilt
432380tilt : $(TILT ) # # Download tilt locally if necessary.
433381$(TILT ) : $(LOCALBIN )
@@ -443,47 +391,7 @@ $(KIND): $(LOCALBIN)
443391 curl -Lso $(KIND ) https://github.com/kubernetes-sigs/kind/releases/download/v$(KIND_VERSION ) /kind-$(OS ) -$(ARCH_SHORT )
444392 chmod +x $(KIND )
445393
446- .PHONY : chainsaw
447- chainsaw : $(CHAINSAW ) # # Download chainsaw locally if necessary.
448- $(CHAINSAW ) : $(CACHE_BIN )
449- GOBIN=$(CACHE_BIN ) go install github.com/kyverno/chainsaw@$(CHAINSAW_VERSION )
450-
451- .PHONY : envtest
452- envtest : $(ENVTEST ) # # Download setup-envtest locally if necessary.
453- $(ENVTEST ) : $(CACHE_BIN )
454- GOBIN=$(CACHE_BIN ) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
455-
456- .phony : golangci-lint
457- golangci-lint : $(GOLANGCI_LINT )
458- $(GOLANGCI_LINT ) : # Build golangci-lint from tools folder.
459- GOBIN=$(LOCALBIN ) go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION )
460-
461394.phony : golangci-lint-kal
462395golangci-lint-kal : $(GOLANGCI_LINT_KAL )
463396$(GOLANGCI_LINT_KAL ) : $(GOLANGCI_LINT ) # Build golangci-lint-kal from custom configuration.
464397 $(GOLANGCI_LINT ) custom
465-
466- .PHONY : nilaway
467- nilaway : $(NILAWAY ) # # Download nilaway locally if necessary.
468- $(NILAWAY ) : $(LOCALBIN )
469- GOBIN=$(LOCALBIN ) go install go.uber.org/nilaway/cmd/nilaway@$(NILAWAY_VERSION )
470-
471- .PHONY : govulncheck
472- govulncheck : $(GOVULNC ) # # Download govulncheck locally if necessary.
473- $(GOVULNC ) : $(LOCALBIN )
474- GOBIN=$(LOCALBIN ) go install golang.org/x/vuln/cmd/govulncheck@$(GOVULNC_VERSION )
475-
476- .PHONY : mockgen
477- mockgen : $(MOCKGEN ) # # Download mockgen locally if necessary.
478- $(MOCKGEN ) : $(LOCALBIN )
479- GOBIN=$(LOCALBIN ) go install go.uber.org/mock/mockgen@$(MOCKGEN_VERSION )
480-
481- .PHONY : gowrap
482- gowrap : $(GOWRAP ) # # Download gowrap locally if necessary.
483- $(GOWRAP ) : $(CACHE_BIN )
484- GOBIN=$(CACHE_BIN ) go install github.com/hexdigest/gowrap/cmd/gowrap@$(GOWRAP_VERSION )
485-
486- .PHONY : s5cmd
487- s5cmd : $(S5CMD )
488- $(S5CMD ) : $(CACHE_BIN )
489- GOBIN=$(CACHE_BIN ) go install github.com/peak/s5cmd/v2@$(S5CMD_VERSION )
0 commit comments