@@ -23,7 +23,8 @@ SHELL:=/usr/bin/env bash
2323#
2424# Go.
2525#
26- GO_VERSION ?= 1.21.5
26+ GO_VERSION ?= 1.21.9
27+ GO_DIRECTIVE_VERSION ?= 1.20
2728GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION )
2829
2930# Use GOPROXY environment variable if set
@@ -670,11 +671,15 @@ APIDIFF_OLD_COMMIT ?= $(shell git rev-parse origin/main)
670671apidiff : $(GO_APIDIFF ) # # Check for API differences
671672 $(GO_APIDIFF ) $(APIDIFF_OLD_COMMIT ) --print-compatible
672673
673- ALL_VERIFY_CHECKS = licenses boilerplate shellcheck tiltfile modules gen conversions doctoc capi-book-summary diagrams import-restrictions
674+ ALL_VERIFY_CHECKS = licenses boilerplate shellcheck tiltfile modules gen conversions doctoc capi-book-summary diagrams import-restrictions go-directive
674675
675676.PHONY : verify
676677verify : $(addprefix verify-,$(ALL_VERIFY_CHECKS ) ) lint-dockerfiles # # Run all verify-* targets
677678
679+ .PHONY : verify-go-directive
680+ verify-go-directive :
681+ TRACE=$(TRACE ) ./hack/verify-go-directive.sh -g $(GO_DIRECTIVE_VERSION )
682+
678683.PHONY : verify-modules
679684verify-modules : generate-modules # # Verify go modules are up to date
680685 @if ! (git diff --quiet HEAD -- go.sum go.mod $( TOOLS_DIR) /go.mod $( TOOLS_DIR) /go.sum $( TEST_DIR) /go.mod $( TEST_DIR) /go.sum); then \
@@ -821,41 +826,48 @@ docker-build-e2e: ## Run docker-build-* targets for all the images with settings
821826
822827.PHONY : docker-build-core
823828docker-build-core : # # Build the docker image for core controller manager
824- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg ldflags=" $( LDFLAGS) " . -t $(CONTROLLER_IMG ) -$(ARCH ) :$(TAG )
829+ # # reads Dockerfile from stdin to avoid an incorrectly cached Dockerfile (https://github.com/moby/buildkit/issues/1368)
830+ cat ./Dockerfile | DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg ldflags="$(LDFLAGS)" . -t $(CONTROLLER_IMG)-$(ARCH):$(TAG) --file -
825831 $(MAKE) set-manifest-image MANIFEST_IMG=$(CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./config/default/manager_image_patch.yaml"
826832 $(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./config/default/manager_pull_policy.yaml"
827833
828834.PHONY : docker-build-kubeadm-bootstrap
829835docker-build-kubeadm-bootstrap : # # Build the docker image for kubeadm bootstrap controller manager
830- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg package=./bootstrap/kubeadm --build-arg ldflags=" $( LDFLAGS) " . -t $(KUBEADM_BOOTSTRAP_CONTROLLER_IMG ) -$(ARCH ) :$(TAG )
836+ # # reads Dockerfile from stdin to avoid an incorrectly cached Dockerfile (https://github.com/moby/buildkit/issues/1368)
837+ cat ./Dockerfile | DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg package=./bootstrap/kubeadm --build-arg ldflags="$(LDFLAGS)" . -t $(KUBEADM_BOOTSTRAP_CONTROLLER_IMG)-$(ARCH):$(TAG) --file -
831838 $(MAKE) set-manifest-image MANIFEST_IMG=$(KUBEADM_BOOTSTRAP_CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./bootstrap/kubeadm/config/default/manager_image_patch.yaml"
832839 $(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./bootstrap/kubeadm/config/default/manager_pull_policy.yaml"
833840
834841.PHONY : docker-build-kubeadm-control-plane
835842docker-build-kubeadm-control-plane : # # Build the docker image for kubeadm control plane controller manager
836- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg package=./controlplane/kubeadm --build-arg ldflags=" $( LDFLAGS) " . -t $(KUBEADM_CONTROL_PLANE_CONTROLLER_IMG ) -$(ARCH ) :$(TAG )
843+ # # reads Dockerfile from stdin to avoid an incorrectly cached Dockerfile (https://github.com/moby/buildkit/issues/1368)
844+ cat ./Dockerfile | DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg package=./controlplane/kubeadm --build-arg ldflags="$(LDFLAGS)" . -t $(KUBEADM_CONTROL_PLANE_CONTROLLER_IMG)-$(ARCH):$(TAG) --file -
837845 $(MAKE) set-manifest-image MANIFEST_IMG=$(KUBEADM_CONTROL_PLANE_CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./controlplane/kubeadm/config/default/manager_image_patch.yaml"
838846 $(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./controlplane/kubeadm/config/default/manager_pull_policy.yaml"
839847
840848.PHONY : docker-build-docker-infrastructure
841849docker-build-docker-infrastructure : # # Build the docker image for docker infrastructure controller manager
842- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg ldflags=" $( LDFLAGS) " . -t $(CAPD_CONTROLLER_IMG ) -$(ARCH ) :$(TAG ) --file $(CAPD_DIR ) /Dockerfile
850+ # # reads Dockerfile from stdin to avoid an incorrectly cached Dockerfile (https://github.com/moby/buildkit/issues/1368)
851+ cat $(CAPD_DIR)/Dockerfile | DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg ldflags="$(LDFLAGS)" . -t $(CAPD_CONTROLLER_IMG)-$(ARCH):$(TAG) --file -
843852 $(MAKE) set-manifest-image MANIFEST_IMG=$(CAPD_CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="$(CAPD_DIR)/config/default/manager_image_patch.yaml"
844853 $(MAKE) set-manifest-pull-policy TARGET_RESOURCE="$(CAPD_DIR)/config/default/manager_pull_policy.yaml"
845854
846855.PHONY : docker-build-in-memory-infrastructure
847856docker-build-in-memory-infrastructure : # # Build the docker image for in-memory infrastructure controller manager
848- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg ldflags=" $( LDFLAGS) " . -t $(CAPIM_CONTROLLER_IMG ) -$(ARCH ) :$(TAG ) --file $(CAPIM_DIR ) /Dockerfile
857+ # # reads Dockerfile from stdin to avoid an incorrectly cached Dockerfile (https://github.com/moby/buildkit/issues/1368)
858+ cat $(CAPIM_DIR)/Dockerfile | DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg ldflags="$(LDFLAGS)" . -t $(CAPIM_CONTROLLER_IMG)-$(ARCH):$(TAG) --file -
849859 $(MAKE) set-manifest-image MANIFEST_IMG=$(CAPIM_CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="$(CAPIM_DIR)/config/default/manager_image_patch.yaml"
850860 $(MAKE) set-manifest-pull-policy TARGET_RESOURCE="$(CAPIM_DIR)/config/default/manager_pull_policy.yaml"
851861
852862.PHONY : docker-build-clusterctl
853863docker-build-clusterctl : # # Build the docker image for clusterctl
854- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg package=./cmd/clusterctl --build-arg ldflags=" $( LDFLAGS) " -f ./cmd/clusterctl/Dockerfile . -t $(CLUSTERCTL_IMG ) -$(ARCH ) :$(TAG )
864+ # # reads Dockerfile from stdin to avoid an incorrectly cached Dockerfile (https://github.com/moby/buildkit/issues/1368)
865+ cat ./Dockerfile | DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg package=./cmd/clusterctl --build-arg ldflags="$(LDFLAGS)" -f ./cmd/clusterctl/Dockerfile . -t $(CLUSTERCTL_IMG)-$(ARCH):$(TAG) --file -
855866
856867.PHONY : docker-build-test-extension
857868docker-build-test-extension : # # Build the docker image for core controller manager
858- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg ldflags=" $( LDFLAGS) " . -t $(TEST_EXTENSION_IMG ) -$(ARCH ) :$(TAG ) --file ./test/extension/Dockerfile
869+ # # reads Dockerfile from stdin to avoid an incorrectly cached Dockerfile (https://github.com/moby/buildkit/issues/1368)
870+ cat ./test/extension/Dockerfile | DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE) --build-arg goproxy=$(GOPROXY) --build-arg ARCH=$(ARCH) --build-arg ldflags="$(LDFLAGS)" . -t $(TEST_EXTENSION_IMG)-$(ARCH):$(TAG) --file -
859871 $(MAKE) set-manifest-image MANIFEST_IMG=$(TEST_EXTENSION_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./test/extension/config/default/manager_image_patch.yaml"
860872 $(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./test/extension/config/default/manager_pull_policy.yaml"
861873
@@ -1106,7 +1118,9 @@ release-binary: $(RELEASE_DIR)
11061118
11071119.PHONY : release-staging
11081120release-staging : # # Build and push container images to the staging bucket
1109- REGISTRY=$(STAGING_REGISTRY ) $(MAKE ) docker-build-all docker-push-all release-alias-tag
1121+ REGISTRY=$(STAGING_REGISTRY ) $(MAKE ) docker-build-all
1122+ REGISTRY=$(STAGING_REGISTRY ) $(MAKE ) docker-push-all
1123+ REGISTRY=$(STAGING_REGISTRY ) $(MAKE ) release-alias-tag
11101124
11111125.PHONY : release-staging-nightly
11121126release-staging-nightly : # # Tag and push container images to the staging bucket. Example image tag: cluster-api-controller:nightly_main_20210121
0 commit comments