@@ -174,6 +174,8 @@ RELEASE_NOTES_VER := v0.18.0
174174RELEASE_NOTES_BIN := release-notes
175175RELEASE_NOTES := $(TOOLS_BIN_DIR ) /$(RELEASE_NOTES_BIN ) -$(RELEASE_NOTES_VER )
176176
177+ TRIVY_VER := 0.64.0
178+
177179YQ_VER := v4.35.2
178180YQ_BIN := yq
179181YQ := $(abspath $(TOOLS_BIN_DIR ) /$(YQ_BIN ) -$(YQ_VER ) )
@@ -203,6 +205,11 @@ TILT_PREPARE := $(abspath $(TOOLS_BIN_DIR)/$(TILT_PREPARE_BIN))
203205GOLANGCI_LINT_BIN := golangci-lint
204206GOLANGCI_LINT := $(abspath $(TOOLS_BIN_DIR ) /$(GOLANGCI_LINT_BIN ) )
205207
208+ GOVULNCHECK_BIN := govulncheck
209+ GOVULNCHECK_VER := v1.1.4
210+ GOVULNCHECK := $(abspath $(TOOLS_BIN_DIR ) /$(GOVULNCHECK_BIN ) -$(GOVULNCHECK_VER ) )
211+ GOVULNCHECK_PKG := golang.org/x/vuln/cmd/govulncheck
212+
206213HELM_VER := $(call get_go_version,helm.sh/helm/v3)
207214HELM_BIN := helm
208215HELM := $(TOOLS_BIN_DIR ) /$(HELM_BIN ) -$(HELM_VER )
@@ -262,6 +269,9 @@ all: test manager
262269help : # Display this help
263270 @awk ' BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[0-9A-Za-z_-]+:.*?##/ { printf " \033[36m%-45s\033[0m %s\n", $$1, $$2 } /^\$$\([0-9A-Za-z_-]+\):.*?##/ { gsub("_","-", $$1); printf " \033[36m%-45s\033[0m %s\n", tolower(substr($$1, 3, length($$1)-7)), $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST )
264271
272+ go-version : # # Print the go version we use to compile our binaries and images
273+ @echo $(GO_VERSION )
274+
265275# # --------------------------------------
266276# # Generate / Manifests
267277# # --------------------------------------
@@ -384,7 +394,26 @@ verify-shellcheck: ## Verify shell files
384394
385395.PHONY : verify-container-images
386396verify-container-images : # # Verify container images
387- TRACE=$(TRACE ) ./hack/verify-container-images.sh
397+ TRACE=$(TRACE ) ./hack/verify-container-images.sh $(TRIVY_VER )
398+
399+ .PHONY : verify-govulncheck
400+ verify-govulncheck : $(GOVULNCHECK ) # # Verify code for vulnerabilities
401+ $(GOVULNCHECK ) ./... && R1=$$? || R1=$$? ; \
402+ $(GOVULNCHECK ) -C " $( TOOLS_DIR) " ./... && R2=$$? || R2=$$? ; \
403+ $(GOVULNCHECK ) -C " $( TEST_DIR) " ./... && R3=$$? || R3=$$? ; \
404+ if [ " $$ R1" -ne " 0" ] || [ " $$ R2" -ne " 0" ] || [ " $$ R3" -ne " 0" ]; then \
405+ exit 1; \
406+ fi
407+
408+ .PHONY : verify-security
409+ verify-security : # # Verify code and images for vulnerabilities
410+ $(MAKE ) verify-container-images && R1=$$? || R1=$$? ; \
411+ $(MAKE ) verify-govulncheck && R2=$$? || R2=$$? ; \
412+ if [ " $$ R1" -ne " 0" ] || [ " $$ R2" -ne " 0" ]; then \
413+ echo " Check for vulnerabilities failed! There are vulnerabilities to be fixed" ; \
414+ exit 1; \
415+ fi
416+
388417
389418# # --------------------------------------
390419# # Binaries
@@ -759,6 +788,12 @@ $(TILT_PREPARE_BIN): $(TILT_PREPARE) ## Build a local copy of tilt-prepare.
759788.PHONY : $(GOLANGCI_LINT_BIN )
760789$(GOLANGCI_LINT_BIN ) : $(GOLANGCI_LINT ) # # Build a local copy of golangci-lint
761790
791+ .PHONY : $(GOVULNCHECK_BIN )
792+ $(GOVULNCHECK_BIN ) : $(GOVULNCHECK ) # # Build a local copy of govulncheck.
793+
794+ $(GOVULNCHECK ) : # Build govulncheck.
795+ GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) $(GOVULNCHECK_PKG ) $(GOVULNCHECK_BIN ) $(GOVULNCHECK_VER )
796+
762797.PHONY : $(GINKGO_BIN )
763798$(GINKGO_BIN ) : $(GINKGO ) # # Build a local copy of ginkgo
764799
0 commit comments