@@ -54,6 +54,19 @@ IMG ?= $(IMAGE_TAG_BASE):$(VERSION)
5454# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
5555ENVTEST_K8S_VERSION = 1.29.0
5656
57+ # Host platform detection for downloading platform-specific binaries.
58+ HOST_OS := $(shell uname -s | tr '[:upper:]' '[:lower:]')
59+ HOST_ARCH_RAW := $(shell uname -m)
60+ ifeq ($(HOST_ARCH_RAW ) ,x86_64)
61+ HOST_ARCH := amd64
62+ else ifeq ($(HOST_ARCH_RAW),aarch64)
63+ HOST_ARCH := arm64
64+ else ifeq ($(HOST_ARCH_RAW),arm64)
65+ HOST_ARCH := arm64
66+ else
67+ HOST_ARCH := $(HOST_ARCH_RAW )
68+ endif
69+
5770# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
5871ifeq (,$(shell go env GOBIN) )
5972GOBIN =$(shell go env GOPATH) /bin
@@ -244,6 +257,7 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize-$(KUSTOMIZE_VERSION)
244257CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen-$(CONTROLLER_TOOLS_VERSION )
245258ENVTEST ?= $(LOCALBIN ) /setup-envtest-$(ENVTEST_VERSION )
246259GOLANGCI_LINT = $(LOCALBIN ) /golangci-lint-$(GOLANGCI_LINT_VERSION )
260+ OPERATOR_SDK ?= $(LOCALBIN ) /operator-sdk-$(OPERATOR_SDK_VERSION ) -$(HOST_OS ) -$(HOST_ARCH )
247261
248262# # Tool Versions
249263KUSTOMIZE_VERSION ?= v5.3.0
@@ -285,25 +299,12 @@ mv "$$(echo "$(1)" | sed "s/-$(3)$$//")" $(1) ;\
285299}
286300endef
287301
288- # Check if operator-sdk exists system-wide first, otherwise use local bin
289- ifeq (,$(shell which operator-sdk 2>/dev/null) )
290- OPERATOR_SDK ?= $(LOCALBIN ) /operator-sdk
291- else
292- OPERATOR_SDK ?= $(shell which operator-sdk)
293- endif
294-
295302.PHONY : operator-sdk
296- operator-sdk : # # Download operator-sdk locally if necessary.
297- @if [ ! -f $( OPERATOR_SDK) ]; then \
298- if [ " $( OPERATOR_SDK) " = " $( LOCALBIN) /operator-sdk" ]; then \
299- echo " Downloading operator-sdk $( OPERATOR_SDK_VERSION) ..." ; \
300- mkdir -p $(LOCALBIN ) ; \
301- OS=$$(uname -s | tr '[:upper:]' '[:lower:]' ) && ARCH=$$(uname -m ) ; \
302- case $$ ARCH in \
303- x86_64) ARCH=amd64 ;; \
304- aarch64) ARCH=arm64 ;; \
305- esac ; \
306- curl -sSLo $(OPERATOR_SDK ) https://github.com/operator-framework/operator-sdk/releases/download/$(OPERATOR_SDK_VERSION ) /operator-sdk_$$ {OS}_$$ {ARCH} ; \
303+ operator-sdk : $(OPERATOR_SDK ) # # Download operator-sdk locally if necessary.
304+
305+ $(OPERATOR_SDK ) : $(LOCALBIN )
306+ @echo " Downloading operator-sdk $( OPERATOR_SDK_VERSION) for $( HOST_OS) /$( HOST_ARCH) ..."
307+ @curl -sSLo $(OPERATOR_SDK ) https://github.com/operator-framework/operator-sdk/releases/download/$(OPERATOR_SDK_VERSION ) /operator-sdk_$(HOST_OS ) _$(HOST_ARCH ) ; \
307308 chmod +x $(OPERATOR_SDK ) ; \
308309 echo " operator-sdk downloaded to $( OPERATOR_SDK) " ; \
309310 else \
0 commit comments