@@ -132,7 +132,7 @@ vet: ## Run go vet against code.
132132 go vet ./...
133133
134134.PHONY : test
135- test : manifests generate fmt vet envtest image-build # # Run tests.
135+ test : manifests generate fmt vet envtest image-build verify-crds # # Run tests.
136136 CGO_ENABLED=1 KUBEBUILDER_ASSETS=" $( shell $( ENVTEST) use $( ENVTEST_K8S_VERSION) --bin-dir $( LOCALBIN) -p path) " go test $$(go list ./... | grep -v /e2e | grep -v /conformance ) -race -coverprofile cover.out
137137
138138.PHONY : test-unit
@@ -163,6 +163,10 @@ ci-lint: golangci-lint
163163verify : vet fmt-verify manifests generate ci-lint verify-all
164164 git --no-pager diff --exit-code config api client-go
165165
166+ .PHONY : verify-crds
167+ verify-crds : kubectl-validate
168+ hack/verify-manifests.sh
169+
166170# Run static analysis.
167171.PHONY : verify-all
168172verify-all :
@@ -354,13 +358,15 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest
354358GOLANGCI_LINT = $(LOCALBIN ) /golangci-lint
355359HELM = $(PROJECT_DIR ) /bin/helm
356360YQ = $(PROJECT_DIR ) /bin/yq
361+ KUBECTL_VALIDATE = $(PROJECT_DIR ) /bin/kubectl-validate
357362
358363# # Tool Versions
359364KUSTOMIZE_VERSION ?= v5.4.3
360365CONTROLLER_TOOLS_VERSION ?= v0.16.1
361366ENVTEST_VERSION ?= release-0.19
362367GOLANGCI_LINT_VERSION ?= v1.62.2
363368HELM_VERSION ?= v3.17.1
369+ KUBECTL_VALIDATE_VERSION ?= v0.0.4
364370
365371.PHONY : kustomize
366372kustomize : $(KUSTOMIZE ) # # Download kustomize locally if necessary.
@@ -390,6 +396,11 @@ yq: ## Download yq locally if necessary.
390396helm : # # Download helm locally if necessary.
391397 GOBIN=$(PROJECT_DIR ) /bin GO111MODULE=on go install helm.sh/helm/v3/cmd/helm@$(HELM_VERSION )
392398
399+ .PHONY : kubectl-validate
400+ kubectl-validate : $(KUBECTL_VALIDATE ) # # Download kubectl-validate locally if necessary.
401+ $(KUBECTL_VALIDATE ) : $(LOCALBIN )
402+ $(call go-install-tool,$(KUBECTL_VALIDATE ) ,sigs.k8s.io/kubectl-validate,$(KUBECTL_VALIDATE_VERSION ) )
403+
393404# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
394405# $1 - target path with name of binary
395406# $2 - package url which can be installed
0 commit comments