@@ -161,6 +161,12 @@ GOVULNCHECK_VER := v1.0.0
161161GOVULNCHECK := $(abspath $(TOOLS_BIN_DIR ) /$(GOVULNCHECK_BIN ) -$(GOVULNCHECK_VER ) )
162162GOVULNCHECK_PKG := golang.org/x/vuln/cmd/govulncheck
163163
164+ METRIC_GEN_VER := v2.9.2
165+ METRIC_GEN_BIN := metric-gen
166+ METRIC_GEN := $(abspath $(TOOLS_BIN_DIR ) /$(METRIC_GEN_BIN ) -$(METRIC_GEN_VER ) )
167+ METRIC_GEN_PKG := k8s.io/kube-state-metrics/exp/metric-gen/v2
168+ METRIC_GEN_MOD_REPLACE := $(METRIC_GEN_PKG ) =github.com/chrischdi/kube-state-metrics/exp/metric-gen/v2@$(METRIC_GEN_VER ) k8s.io/kube-state-metrics/v2=k8s.io/kube-state-metrics/v2@$(METRIC_GEN_VER )
169+
164170GOVC_VER := $(shell cat go.mod | grep "github.com/vmware/govmomi" | awk '{print $$NF}')
165171GOVC_BIN := govc
166172GOVC := $(abspath $(TOOLS_BIN_DIR ) /$(GOVC_BIN ) -$(GOVC_VER ) )
@@ -182,6 +188,8 @@ RELEASE_NOTES_VER := $(CAPI_HACK_TOOLS_VER)
182188RELEASE_NOTES_BIN := release-notes
183189RELEASE_NOTES := $(abspath $(TOOLS_BIN_DIR ) /$(RELEASE_NOTES_BIN ) -$(RELEASE_NOTES_VER ) )
184190RELEASE_NOTES_PKG := sigs.k8s.io/cluster-api/hack/tools/release
191+ # let go resolve the tools version via the CAPI version.
192+ RELEASE_NOTES_MOD_REQUIRE := sigs.k8s.io/cluster-api/hack/tools@$(RELEASE_NOTES_VER )
185193
186194# Define Docker related variables. Releases should modify and double check these vars.
187195REGISTRY ?= gcr.io/$(shell gcloud config get-value project)
@@ -235,7 +243,7 @@ help: # Display this help
235243
236244.PHONY : generate
237245generate : # # Run all generate targets
238- $(MAKE ) generate-modules generate-manifests generate-go-deepcopy generate-go-conversions generate-flavors
246+ $(MAKE ) generate-modules generate-manifests generate-go-deepcopy generate-go-conversions generate-flavors generate-metrics-config
239247
240248.PHONY : generate-manifests
241249generate-manifests : $(CONTROLLER_GEN ) # # Generate manifests e.g. CRD, RBAC etc.
@@ -313,6 +321,9 @@ generate-e2e-templates-main: $(KUSTOMIZE) ## Generate test templates for the mai
313321 # for DHCP overrides
314322 " $( KUSTOMIZE) " --load-restrictor LoadRestrictionsNone build $(E2E_TEMPLATE_DIR ) /main/dhcp-overrides > $(E2E_TEMPLATE_DIR ) /main/cluster-template-dhcp-overrides.yaml
315323
324+ .PHONY : generate-metrics-config
325+ generate-metrics-config : $(METRIC_GEN ) # # Generate ./crd-metrics-config.yaml
326+ $(METRIC_GEN ) ./apis/... > crd-metrics-config.yaml
316327
317328# # --------------------------------------
318329# # Lint / Verify
@@ -400,7 +411,6 @@ verify-flavors: $(FLAVOR_DIR) generate-flavors ## Verify generated flavors
400411 echo " flavor files in templates directory are out of date" ; exit 1; \
401412 fi
402413
403-
404414# # --------------------------------------
405415# # Build
406416# # --------------------------------------
@@ -598,7 +608,6 @@ e2e-flavors-main: $(RELEASE_DIR)
598608 mkdir -p $(RELEASE_DIR ) /main
599609 $(MAKE ) generate-flavors FLAVOR_DIR=$(RELEASE_DIR ) /main
600610
601-
602611.PHONY : generate-flavors
603612generate-flavors : $(FLAVOR_DIR )
604613 go run ./packaging/flavorgen --output-dir $(FLAVOR_DIR )
@@ -755,13 +764,15 @@ $(GOLANGCI_LINT_BIN): $(GOLANGCI_LINT) ## Build a local copy of golangci-lint.
755764.PHONY : $(GOVULNCHECK_BIN )
756765$(GOVULNCHECK_BIN ) : $(GOVULNCHECK ) # # Build a local copy of govulncheck.
757766
767+ .PHONY : $(METRIC_GEN_BIN )
768+ $(METRIC_GEN_BIN ) : $(METRIC_GEN ) # # Build a local copy of metric-gen.
769+
758770.PHONY : $(GOVC_BIN )
759771$(GOVC_BIN ) : $(GOVC ) # # Build a local copy of govc.
760772
761773.PHONY : $(KIND_BIN )
762774$(KIND_BIN ) : $(KIND ) # # Build a local copy of kind.
763775
764-
765776.PHONY : $(RELEASE_NOTES_BIN )
766777$(RELEASE_NOTES_BIN ) : $(RELEASE_NOTES ) # # Build a local copy of release-notes.
767778
@@ -807,15 +818,17 @@ $(GOLANGCI_LINT): # Build golangci-lint.
807818$(GOVULNCHECK ) : # Build govulncheck.
808819 GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) $(GOVULNCHECK_PKG ) $(GOVULNCHECK_BIN ) $(GOVULNCHECK_VER )
809820
821+ $(METRIC_GEN ) : # Build metric-gen.
822+ GOBIN=$(TOOLS_BIN_DIR ) GOMOD_REPLACE=" $( METRIC_GEN_MOD_REPLACE) " $(GO_TOOLS_BUILD ) $(METRIC_GEN_PKG ) $(METRIC_GEN_BIN ) $(METRIC_GEN_VER )
823+
810824$(GOVC ) : # Build GOVC.
811825 CGO_ENABLED=0 GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) $(GOVC_PKG ) $(GOVC_BIN ) $(GOVC_VER )
812826
813827$(KIND ) : # Build kind.
814828 GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) $(KIND_PKG ) $(KIND_BIN ) $(KIND_VER )
815829
816-
817830$(RELEASE_NOTES ) : # Build release-notes.
818- GOBIN=$(TOOLS_BIN_DIR ) $(GO_TOOLS_BUILD ) $(RELEASE_NOTES_PKG ) $(RELEASE_NOTES_BIN ) $(RELEASE_NOTES_VER )
831+ GOBIN=$(TOOLS_BIN_DIR ) GOMOD_REQUIRE= " $( RELEASE_NOTES_MOD_REQUIRE ) " $(GO_TOOLS_BUILD ) $(RELEASE_NOTES_PKG ) $(RELEASE_NOTES_BIN ) $(RELEASE_NOTES_VER )
819832
820833# # --------------------------------------
821834# # Helpers
0 commit comments