@@ -23,7 +23,8 @@ SHELL:=/usr/bin/env bash
23
23
#
24
24
# Go.
25
25
#
26
- GO_VERSION ?= 1.21.5
26
+ GO_VERSION ?= 1.21.9
27
+ GO_DIRECTIVE_VERSION ?= 1.20
27
28
GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION )
28
29
29
30
# Use GOPROXY environment variable if set
@@ -670,11 +671,15 @@ APIDIFF_OLD_COMMIT ?= $(shell git rev-parse origin/main)
670
671
apidiff : $(GO_APIDIFF ) # # Check for API differences
671
672
$(GO_APIDIFF ) $(APIDIFF_OLD_COMMIT ) --print-compatible
672
673
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
674
675
675
676
.PHONY : verify
676
677
verify : $(addprefix verify-,$(ALL_VERIFY_CHECKS ) ) lint-dockerfiles # # Run all verify-* targets
677
678
679
+ .PHONY : verify-go-directive
680
+ verify-go-directive :
681
+ TRACE=$(TRACE ) ./hack/verify-go-directive.sh -g $(GO_DIRECTIVE_VERSION )
682
+
678
683
.PHONY : verify-modules
679
684
verify-modules : generate-modules # # Verify go modules are up to date
680
685
@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
821
826
822
827
.PHONY : docker-build-core
823
828
docker-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 -
825
831
$(MAKE) set-manifest-image MANIFEST_IMG=$(CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./config/default/manager_image_patch.yaml"
826
832
$(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./config/default/manager_pull_policy.yaml"
827
833
828
834
.PHONY : docker-build-kubeadm-bootstrap
829
835
docker-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 -
831
838
$(MAKE) set-manifest-image MANIFEST_IMG=$(KUBEADM_BOOTSTRAP_CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./bootstrap/kubeadm/config/default/manager_image_patch.yaml"
832
839
$(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./bootstrap/kubeadm/config/default/manager_pull_policy.yaml"
833
840
834
841
.PHONY : docker-build-kubeadm-control-plane
835
842
docker-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 -
837
845
$(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"
838
846
$(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./controlplane/kubeadm/config/default/manager_pull_policy.yaml"
839
847
840
848
.PHONY : docker-build-docker-infrastructure
841
849
docker-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 -
843
852
$(MAKE) set-manifest-image MANIFEST_IMG=$(CAPD_CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="$(CAPD_DIR)/config/default/manager_image_patch.yaml"
844
853
$(MAKE) set-manifest-pull-policy TARGET_RESOURCE="$(CAPD_DIR)/config/default/manager_pull_policy.yaml"
845
854
846
855
.PHONY : docker-build-in-memory-infrastructure
847
856
docker-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 -
849
859
$(MAKE) set-manifest-image MANIFEST_IMG=$(CAPIM_CONTROLLER_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="$(CAPIM_DIR)/config/default/manager_image_patch.yaml"
850
860
$(MAKE) set-manifest-pull-policy TARGET_RESOURCE="$(CAPIM_DIR)/config/default/manager_pull_policy.yaml"
851
861
852
862
.PHONY : docker-build-clusterctl
853
863
docker-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 -
855
866
856
867
.PHONY : docker-build-test-extension
857
868
docker-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 -
859
871
$(MAKE) set-manifest-image MANIFEST_IMG=$(TEST_EXTENSION_IMG)-$(ARCH) MANIFEST_TAG=$(TAG) TARGET_RESOURCE="./test/extension/config/default/manager_image_patch.yaml"
860
872
$(MAKE) set-manifest-pull-policy TARGET_RESOURCE="./test/extension/config/default/manager_pull_policy.yaml"
861
873
@@ -1106,7 +1118,9 @@ release-binary: $(RELEASE_DIR)
1106
1118
1107
1119
.PHONY : release-staging
1108
1120
release-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
1110
1124
1111
1125
.PHONY : release-staging-nightly
1112
1126
release-staging-nightly : # # Tag and push container images to the staging bucket. Example image tag: cluster-api-controller:nightly_main_20210121
0 commit comments