Skip to content

Commit c0f9025

Browse files
Add platform specific binaries
Signed-off-by: Shreya Biradar <shbirada@ibm.com>
1 parent d958fb4 commit c0f9025

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

Makefile

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
5555
ENVTEST_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)
5871
ifeq (,$(shell go env GOBIN))
5972
GOBIN=$(shell go env GOPATH)/bin
@@ -244,6 +257,7 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize-$(KUSTOMIZE_VERSION)
244257
CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen-$(CONTROLLER_TOOLS_VERSION)
245258
ENVTEST ?= $(LOCALBIN)/setup-envtest-$(ENVTEST_VERSION)
246259
GOLANGCI_LINT = $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION)
260+
OPERATOR_SDK ?= $(LOCALBIN)/operator-sdk-$(OPERATOR_SDK_VERSION)-$(HOST_OS)-$(HOST_ARCH)
247261

248262
## Tool Versions
249263
KUSTOMIZE_VERSION ?= v5.3.0
@@ -285,25 +299,12 @@ mv "$$(echo "$(1)" | sed "s/-$(3)$$//")" $(1) ;\
285299
}
286300
endef
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

Comments
 (0)