Skip to content

Commit

Permalink
normalize the image building targets
Browse files Browse the repository at this point in the history
  • Loading branch information
mainred committed Feb 21, 2025
1 parent b4aebbe commit e5a7448
Showing 1 changed file with 91 additions and 116 deletions.
207 changes: 91 additions & 116 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,24 @@ K8S_BRANCH ?=
#The test args for Kubernetes e2e tests
TEST_E2E_ARGS ?= '--ginkgo.focus=Port\sforwarding'

WINDOWS_USE_HOST_PROCESS_CONTAINERS ?= false

# Generate all combination of all OS, ARCH, and OSVERSIONS for iteration

ALL_ARCH.linux = amd64 arm arm64
ALL_OS ?= linux windows
ALL_ARCH.linux ?= amd64 arm arm64
ALL_OS_ARCH.linux=$(foreach arch, $(ALL_ARCH.linux), linux-$(arch))
# as windows server core does not support arm64 windows image, trakced by the following link,
# and only 1809 has arm64 nanoserver support, we support here only amd64 windows image
# https://github.com/microsoft/Windows-Containers/issues/195
ALL_ARCH.windows = amd64
ALL_OSVERSIONS.windows := 1809 2004 20H2 ltsc2022
ALL_OS_ARCH.windows = $(foreach arch, $(ALL_ARCH.windows), $(foreach osversion, ${ALL_OSVERSIONS.windows}, ${osversion}-${arch}))
ALL_ARCH.windows ?= amd64
ALL_OSVERSIONS.windows ?= 1809 ltsc2022
ifeq ($(WINDOWS_USE_HOST_PROCESS_CONTAINERS), true)
ALL_OS_ARCH.windows = $(foreach arch, $(ALL_ARCH.windows), windows-hpc-${arch})
else
ALL_OS_ARCH.windows = $(foreach arch, $(ALL_ARCH.windows), $(foreach osversion, ${ALL_OSVERSIONS.windows}, windows-${osversion}-${arch}))
endif
ALL_OS_ARCH = $(foreach os, $(ALL_OS), $(ALL_OS_ARCH.$(os)))

# The current context of image building
# The architecture of the image
Expand All @@ -52,26 +61,17 @@ IMAGE_REGISTRY ?= local
K8S_VERSION ?= v1.18.0-rc.1
HYPERKUBE_IMAGE ?= gcrio.azureedge.net/google_containers/hyperkube-amd64:$(K8S_VERSION)

# `docker buildx` and `docker manifest` requires enabling DOCKER_CLI_EXPERIMENTAL for docker version < 1.20
export DOCKER_CLI_EXPERIMENTAL=enabled

ifndef TAG
IMAGE_TAG ?= $(shell git rev-parse --short=7 HEAD)
else
IMAGE_TAG ?= $(TAG)
endif

# `docker buildx` and `docker manifest` requires enabling DOCKER_CLI_EXPERIMENTAL for docker version < 1.20
export DOCKER_CLI_EXPERIMENTAL=enabled
DOCKER_CLI_EXPERIMENTAL := enabled

DOCKER_BUILDX ?= docker buildx

# cloud controller manager image
ifeq ($(ARCH), amd64)
CONTROLLER_MANAGER_IMAGE_NAME=azure-cloud-controller-manager
else
CONTROLLER_MANAGER_IMAGE_NAME=azure-cloud-controller-manager-$(ARCH)
endif

# Cross-platform build with CGO_ENABLED=1
ifeq ($(ARCH), amd64)
CGO_OPTION ?= CGO_ENABLED=1
Expand All @@ -81,17 +81,19 @@ else ifeq ($(ARCH), arm)
CGO_OPTION ?= CGO_ENABLED=1 CC=arm-linux-gnueabihf-gcc
endif

CONTROLLER_MANAGER_FULL_IMAGE_NAME=$(IMAGE_REGISTRY)/$(CONTROLLER_MANAGER_IMAGE_NAME)
CONTROLLER_MANAGER_IMAGE=$(IMAGE_REGISTRY)/$(CONTROLLER_MANAGER_IMAGE_NAME):$(IMAGE_TAG)
ALL_CONTROLLER_MANAGER_IMAGES = $(foreach arch, ${ALL_ARCH.linux}, $(CONTROLLER_MANAGER_FULL_IMAGE_NAME)-${arch}:$(IMAGE_TAG))
# image name and variable pattern for the cloud-controller-manager and cloud-node-manager:
# - XX_IMAGE only carries the registry and XX component image name without image tag
# - The Linux image tag of specific ARCH will be in the format $(IMAGE_TAG)-linux-$(ARCH)
# - The Windows image tag of specific ARCH and OS will be in the format $(IMAGE_TAG)-windows-$(WINDOWS_OSVERSION)-$(ARCH)
# - The Windows hpc image tag of specific ARCH will be in the format $(IMAGE_TAG)-windows-hpc-$(ARCH)

# cloud controller manager image
CONTROLLER_MANAGER_IMAGE_NAME=azure-cloud-controller-manager
CONTROLLER_MANAGER_IMAGE=$(IMAGE_REGISTRY)/$(CONTROLLER_MANAGER_IMAGE_NAME)

# cloud node manager image
NODE_MANAGER_IMAGE_NAME=azure-cloud-node-manager
NODE_MANAGER_FULL_IMAGE_NAME=$(IMAGE_REGISTRY)/$(NODE_MANAGER_IMAGE_NAME)
NODE_MANAGER_IMAGE=$(NODE_MANAGER_FULL_IMAGE_NAME):$(IMAGE_TAG)
NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX=$(NODE_MANAGER_FULL_IMAGE_NAME):$(IMAGE_TAG)-linux
NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX=$(NODE_MANAGER_FULL_IMAGE_NAME):$(IMAGE_TAG)-windows
ALL_NODE_MANAGER_IMAGES = $(foreach arch, ${ALL_ARCH.linux}, $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-${arch}) $(foreach osversion-arch, ${ALL_OS_ARCH.windows}, $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-${osversion-arch})
NODE_MANAGER_IMAGE=$(IMAGE_REGISTRY)/$(NODE_MANAGER_IMAGE_NAME)

# ccm e2e test image
CCM_E2E_TEST_IMAGE_NAME=cloud-provider-azure-e2e
Expand Down Expand Up @@ -149,12 +151,12 @@ build-ccm-image: buildx-setup ## Build controller-manager image.
--build-arg ARCH="$(ARCH)" \
--build-arg VERSION="$(VERSION)" \
--file Dockerfile \
--tag $(CONTROLLER_MANAGER_IMAGE) . \
--tag $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG)-linux-$(ARCH) . \
--provenance=false \
--sbom=false

.PHONY: build-node-image-linux
build-node-image-linux: buildx-setup ## Build node-manager image.
build-node-image-linux: buildx-setup ## Build node-manager Linux image with specific ARCH.
$(DOCKER_BUILDX) build \
--pull \
--output=type=$(OUTPUT_TYPE) \
Expand All @@ -163,28 +165,28 @@ build-node-image-linux: buildx-setup ## Build node-manager image.
--build-arg ARCH="$(ARCH)" \
--build-arg VERSION="$(VERSION)" \
--file cloud-node-manager.Dockerfile \
--tag $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$(ARCH) . \
--tag $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-linux-$(ARCH) . \
--provenance=false \
--sbom=false

.PHONY: build-node-image-windows
build-node-image-windows: buildx-setup $(BIN_DIR)/azure-cloud-node-manager.exe ## Build node-manager image for Windows.
build-node-image-windows: buildx-setup $(BIN_DIR)/azure-cloud-node-manager.exe ## Build node-manager Windows image with specific ARCH and OS.
$(DOCKER_BUILDX) build --pull \
--output=type=$(OUTPUT_TYPE) \
--platform windows/$(ARCH) \
-t $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-$(WINDOWS_OSVERSION)-$(ARCH) \
-t $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-windows-$(WINDOWS_OSVERSION)-$(ARCH) \
--build-arg OSVERSION=$(WINDOWS_OSVERSION) \
--build-arg ARCH=$(ARCH) \
-f cloud-node-manager-windows.Dockerfile . \
--provenance=false \
--sbom=false

.PHONY: build-node-image-windows-hpc
build-node-image-windows-hpc: buildx-setup $(BIN_DIR)/azure-cloud-node-manager.exe ## Build node-manager image for Windows.
build-node-image-windows-hpc: buildx-setup $(BIN_DIR)/azure-cloud-node-manager.exe ## Build node-manager Windows image for a specific ARCH.
$(DOCKER_BUILDX) build --pull \
--output=type=$(OUTPUT_TYPE) \
--platform windows/$(ARCH) \
-t $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-hpc-$(ARCH) \
-t $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-windows-hpc-$(ARCH) \
--build-arg ARCH=$(ARCH) \
-f cloud-node-manager-windows-hpc.Dockerfile . \
--provenance=false \
Expand All @@ -195,20 +197,12 @@ build-ccm-e2e-test-image: ## Build e2e test image.
docker build -t $(CCM_E2E_TEST_IMAGE) -f ./e2e.Dockerfile .

.PHONY: push-ccm-image
push-ccm-image: ## Push controller-manager image.
docker push $(CONTROLLER_MANAGER_IMAGE)
push-ccm-image: ## Push controller-manager Linux image of a specific ARCH.
$(MAKE) ARCH=$(ARCH) OUTPUT_TYPE=registry build-ccm-image

.PHONY: push-node-image-linux
push-node-image-linux: ## Push node-manager image for Linux.
docker push $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$(ARCH)

push-node-image-linux-push-name-%:
$(MAKE) ARCH=$* push-node-image-linux-push-name

.PHONY: push-node-image-linux-push-name
push-node-image-linux-push-name:
docker tag $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$(ARCH) $(NODE_MANAGER_IMAGE)
docker push $(NODE_MANAGER_IMAGE)
push-node-image-linux: ## Push node-manager Linux image for a specific ARCH.
$(MAKE) ARCH=$(ARCH) OUTPUT_TYPE=registry build-node-image-linux

.PHONY: release-ccm-e2e-test-image
release-ccm-e2e-test-image: ## Build and release e2e test image.
Expand All @@ -225,60 +219,61 @@ endif
##@ All Arch or OS Version
## --------------------------------------

# NOTE(mainred): build-images target is going to be deprecated
.PHONY: build-images
build-images: image

# NOTE(mainred): push-images target is going to be deprecated
.PHONY: push-images
push-images: push

.PHONY: image
image: build-all-ccm-images build-all-node-images ## Build all images.

.PHONY: push
push: push-multi-arch-controller-manager-image push-multi-arch-node-manager-image ## Push all images.

.PHONY: push-multi-arch-controller-manager-image ## Push multi-arch controller-manager image
push-multi-arch-controller-manager-image: push-all-ccm-images ## Create and push a manifest list containing all the Linux ccm images.
## Linux amd64 ccm image name has no amd64
docker tag $(CONTROLLER_MANAGER_FULL_IMAGE_NAME):$(IMAGE_TAG) $(CONTROLLER_MANAGER_FULL_IMAGE_NAME)-amd64:$(IMAGE_TAG)
docker push $(CONTROLLER_MANAGER_FULL_IMAGE_NAME)-amd64:$(IMAGE_TAG)
.PHONY: manifest
manifest: manifest-controller-manager manifest-node-manager ## Push cloud-controller-manager and cloud-node-manager manifests.

docker manifest create --amend $(CONTROLLER_MANAGER_IMAGE) $(ALL_CONTROLLER_MANAGER_IMAGES)
.PHONY: manifest-controller-manager
manifest-controller-manager: push-all-ccm-images ## Push controller-manager manifest by creating and pushing a manifest list containing all the Linux ccm images.
docker manifest create --amend $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG) $(shell echo $(ALL_OS_ARCH.linux) | sed -e "s~[^ ]*~$(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG)\-&~g")
for arch in $(ALL_ARCH.linux); do \
docker manifest annotate --os linux --arch $${arch} $(CONTROLLER_MANAGER_IMAGE) $(CONTROLLER_MANAGER_FULL_IMAGE_NAME)-$${arch}:$(IMAGE_TAG); \
docker manifest annotate --os linux --arch $${arch} $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG) $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG)-linux-$${arch}; \
done
docker manifest push --purge $(CONTROLLER_MANAGER_IMAGE)
docker manifest push --purge $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG)

.PHONY: push-multi-arch-node-manager-image ## Push multi-arch node-manager image
push-multi-arch-node-manager-image: push-all-node-images ## Create and push a manifest list containing all the Windows and Linux images.
docker manifest create --amend $(NODE_MANAGER_IMAGE) $(ALL_NODE_MANAGER_IMAGES)
.PHONY: manifest-node-manager
manifest-node-manager: push-all-node-images ## Push node-manager manifest by creating and pushing a manifest list containing all the Windows and Linux images.
docker manifest create --amend $(NODE_MANAGER_IMAGE):$(IMAGE_TAG) $(shell echo $(ALL_OS_ARCH) | sed -e "s~[^ ]*~$(NODE_MANAGER_IMAGE):$(IMAGE_TAG)\-&~g")
for arch in $(ALL_ARCH.linux); do \
docker manifest annotate --os linux --arch $${arch} $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$${arch}; \
docker manifest annotate --os linux --arch $${arch} $(NODE_MANAGER_IMAGE):$(IMAGE_TAG) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-linux-$${arch}; \
done
ifeq ($(WINDOWS_USE_HOST_PROCESS_CONTAINERS),true)
for windowsarch in $(ALL_ARCH.windows); do \
docker manifest annotate --os windows --arch $${windowsarch} $(NODE_MANAGER_IMAGE):$(IMAGE_TAG) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-windows-hpc-$(ARCH); \
done
else
# For Windows images, we also need to include the "os.version" in the manifest list, so the Windows node can pull the proper image it needs.
# we use awk to also trim the quotes around the OS version string.
set -x; \
for windowsarch in $(ALL_ARCH.windows); do \
for osversion in $(ALL_OSVERSIONS.windows); do \
full_version=`docker manifest inspect ${BASE.windows}:$${osversion} | jq -r '.manifests[0].platform["os.version"]'`; \
docker manifest annotate --os windows --arch $${windowsarch} --os-version $${full_version} $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-$${osversion}-$${windowsarch}; \
docker manifest annotate --os windows --arch $${windowsarch} --os-version $${full_version} $(NODE_MANAGER_IMAGE):$(IMAGE_TAG) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-windows-$${osversion}-$${windowsarch}; \
done; \
done
docker manifest push --purge $(NODE_MANAGER_IMAGE)
endif

.PHONY: push-all-node-images ## Push node-manager image for os and archs.
push-all-node-images: push-all-node-images-linux push-all-node-images-windows
docker manifest push --purge $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)

.PHONY: push-all-ccm-images
push-all-ccm-images: $(addprefix push-ccm-image-,$(ALL_ARCH.linux))

push-ccm-image-%:
$(MAKE) ARCH=$* push-ccm-image
# TODO(mainred): capz uses push-ccm-image-amd64 to push the image, to not break the test and image release, we want to keep the same capability.
# And remove this workaround after we onboard the new targets in capz.
ifeq ($(IS_RELEASE),)
docker tag $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG)-linux-amd64 $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG)
docker push $(CONTROLLER_MANAGER_IMAGE):$(IMAGE_TAG)
endif

.PHONY: push-all-node-images-linux ## Push node-manager image for Linux.
push-all-node-images-linux: $(addprefix push-node-image-linux-,$(ALL_ARCH.linux))
.PHONY: push-all-node-Images
push-all-node-images: push-all-node-images-linux push-all-node-images-windows

.PHONY: push-all-node-images-windows ## Push node-manager image for Windows.
push-all-node-images-windows: $(addprefix push-node-image-windows-,$(ALL_OS_ARCH.windows))
.PHONY: push-all-node-images-Linux
push-all-node-images-linux: $(addprefix push-node-image-,$(ALL_OS_ARCH.linux))

.PHONY: push-all-node-images-windows-hpc ## Push node-manager image for Windows.
push-all-node-images-windows-hpc: $(addprefix push-node-images-windows-hpc-,$(ALL_OS_ARCH.windows))
.PHONY: push-all-node-images-windows
push-all-node-images-windows: $(addprefix push-node-image-,$(ALL_OS_ARCH.windows))

# split words on hyphen, access by 1-index
word-hyphen = $(word $2,$(subst -, ,$1))
Expand All @@ -292,55 +287,35 @@ push-node-image-windows-%:
push-node-image-windows-hpc-%:
$(MAKE) ARCH=$(call word-hyphen,$*,1) OUTPUT_TYPE=registry build-node-image-windows-hpc

.PHONY: build-all-node-images ## Build node-manager image for all OS and archs.
build-all-node-images: build-all-node-images-linux build-all-node-images-windows

.PHONY: build-all-node-images-linux ## Build node-manager image for Linux.
build-all-node-images-linux: $(addprefix build-node-image-linux-,$(ALL_ARCH.linux))
.PHONY: build-all-node-images-linux
build-all-node-images-linux: $(addprefix build-node-image-,$(ALL_OS_ARCH.linux))

.PHONY: build-all-node-images-windows ## Build node-manager image for Windows.
build-all-node-images-windows: $(addprefix build-node-image-windows-,$(ALL_OS_ARCH.windows))
.PHONY: build-all-node-images-windows
build-all-node-images-windows: $(addprefix build-node-image-,$(ALL_OS_ARCH.windows))

build-node-image-linux-%:
$(MAKE) ARCH=$* build-node-image-linux

build-node-image-windows-%:
$(MAKE) WINDOWS_OSVERSION=$(call word-hyphen,$*,1) ARCH=$(call word-hyphen,$*,2) build-node-image-windows

build-node-image-windows-hpc-%:
$(MAKE) ARCH=$(call word-hyphen,$*,1) build-node-image-windows-hpc

.PHONY: build-all-ccm-images
build-all-ccm-images: $(addprefix build-ccm-image-,$(ALL_ARCH.linux))

build-ccm-image-%:
$(MAKE) ARCH=$* build-ccm-image

.PHONY: push-all-ccm-images
push-all-ccm-images: $(addprefix push-ccm-image-,$(ALL_ARCH.linux))

push-ccm-image-%:
$(MAKE) ARCH=$* push-ccm-image

manifest-node-manager-image-windows-%:
$(MAKE) WINDOWS_OSVERSION=$(call word-hyphen,$*,1) ARCH=$(call word-hyphen,$*,2) manifest-node-manager-image-windows

manifest-node-manager-image-windows-hpc-%:
$(MAKE) ARCH=$(call word-hyphen,$*,1) manifest-node-manager-image-windows-hpc

.PHONY: manifest-node-manager-image-windows
manifest-node-manager-image-windows:
set -x
docker manifest create --amend $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$(ARCH) $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-$(WINDOWS_OSVERSION)-$(ARCH)
docker manifest annotate --os linux --arch $(ARCH) $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$(ARCH)
full_version=`docker manifest inspect ${BASE.windows}:$(WINDOWS_OSVERSION) | jq -r '.manifests[0].platform["os.version"]'`; \
docker manifest annotate --os windows --arch $(ARCH) --os-version $${full_version} $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-$(WINDOWS_OSVERSION)-$(ARCH)
docker manifest push --purge $(NODE_MANAGER_IMAGE)
# TODO(mainred): remove this after we onboard new patterns in capz

.PHONY: manifest-node-manager-images-windows-hpc
manifest-node-manager-image-windows-hpc:
set -x
docker manifest create --amend $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$(ARCH) $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-hpc-$(ARCH)
docker manifest annotate --os linux --arch $(ARCH) $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_LINUX_FULL_IMAGE_PREFIX)-$(ARCH)
docker manifest annotate --os windows --arch $(ARCH) $(NODE_MANAGER_IMAGE) $(NODE_MANAGER_WINDOWS_FULL_IMAGE_PREFIX)-hpc-$(ARCH)
docker manifest push --purge $(NODE_MANAGER_IMAGE)
docker manifest create --amend $(NODE_MANAGER_IMAGE):$(IMAGE_TAG) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-linux-$(ARCH) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-windows-hpc-$(ARCH)
docker manifest annotate --os linux --arch $(ARCH) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-linux-$(ARCH)
docker manifest annotate --os windows --arch $(ARCH) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG) $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)-windows-hpc-$(ARCH)
docker manifest push --purge $(NODE_MANAGER_IMAGE):$(IMAGE_TAG)

## --------------------------------------
##@ Tests
Expand All @@ -366,15 +341,15 @@ test-boilerplate: ## Run boilerplate test.
hack/verify-boilerplate.sh

.PHONY: test-helm
test-helm: ## Validate helm charts
test-helm: ## Validate helm charts
hack/verify-helm-repo.sh

.PHONY: verify-vendor-licenses
verify-vendor-licenses: ## Verify vendor licenses
hack/verify-azure-vendor-licenses.sh

.PHONY: update-helm
update-helm: ## Update helm charts
update-helm: ## Update helm charts.
hack/update-helm-repo.sh

.PHONY: update-dependencies
Expand All @@ -390,7 +365,7 @@ update-mocks: ## Create or update mock clients.
@hack/update-mock-clients.sh

.PHONY: update-vendor-licenses
update-vendor-licenses: ## Update vendor licenses
update-vendor-licenses: ## Update vendor licenses
hack/update-azure-vendor-licenses.sh

.PHONY: update
Expand All @@ -399,7 +374,7 @@ update: update-dependencies update-gofmt update-mocks update-vendor-licenses ##
test-e2e: ## Run k8s e2e tests.
hack/test_k8s_e2e.sh $(TEST_E2E_ARGS)

test-e2e-capz: ## Run k8s e2e tests with capz
test-e2e-capz: ## Run k8s e2e tests with capz.
hack/test_k8s_e2e_capz.sh $(TEST_E2E_ARGS)

test-ccm-e2e: ## Run cloud provider e2e tests.
Expand Down Expand Up @@ -431,9 +406,9 @@ cloud-build-prerequisites:
.PHONY: release-staging
release-staging: ## Release the cloud provider images.
ifeq ($(CLOUD_BUILD_IMAGE),ccm)
ENABLE_GIT_COMMAND=$(ENABLE_GIT_COMMAND) $(MAKE) build-all-ccm-images push-multi-arch-controller-manager-image
ENABLE_GIT_COMMAND=$(ENABLE_GIT_COMMAND) $(MAKE) IS_RELEASE=true manifest-controller-manager
else
ENABLE_GIT_COMMAND=$(ENABLE_GIT_COMMAND) $(MAKE) cloud-build-prerequisites build-all-node-images push-multi-arch-node-manager-image
ENABLE_GIT_COMMAND=$(ENABLE_GIT_COMMAND) $(MAKE) cloud-build-prerequisites manifest-node-manager
endif

## --------------------------------------
Expand Down

0 comments on commit e5a7448

Please sign in to comment.