From 5bd84b3d3e47f3c094cc0f7f8e745f292ac54f29 Mon Sep 17 00:00:00 2001 From: Hao Liu <44379968+TheRealHaoLiu@users.noreply.github.com> Date: Tue, 17 Oct 2023 16:19:29 -0400 Subject: [PATCH] Install operator-sdk if needed (#1600) --- .github/workflows/feature.yml | 19 ------------------- Makefile | 26 +++++++++++++++++++++----- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml index 8e41a0f1..7198f2eb 100644 --- a/.github/workflows/feature.yml +++ b/.github/workflows/feature.yml @@ -29,25 +29,6 @@ jobs: run: | echo "IMAGE_TAG_BASE=ghcr.io/${OWNER_LC}/awx-operator" >>${GITHUB_ENV} - - name: Set ARCH environment variable - run: | - echo "ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac)" >>${GITHUB_ENV} - - - name: Set OS environment variable - run: | - echo "OS=$(uname | awk '{print tolower($0)}')" >>${GITHUB_ENV} - - - name: Install operator-sdk - run: | - echo "Installing operator-sdk ${OPERATOR_SDK_DL_URL}" && \ - curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH} && \ - chmod +x operator-sdk_${OS}_${ARCH} && \ - sudo mkdir -p /usr/local/bin/ && \ - sudo mv operator-sdk_${OS}_${ARCH} /usr/local/bin/operator-sdk && \ - operator-sdk version - env: - OPERATOR_SDK_DL_URL: https://github.com/operator-framework/operator-sdk/releases/download/v1.26.0 - - name: Log in to registry run: | echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin diff --git a/Makefile b/Makefile index 154f9480..4ff8dca7 100644 --- a/Makefile +++ b/Makefile @@ -149,6 +149,22 @@ KUSTOMIZE = $(shell which kustomize) endif endif +.PHONY: operator-sdk +OPERATOR_SDK = $(shell pwd)/bin/operator-sdk +operator-sdk: ## Download operator-sdk locally if necessary, preferring the $(pwd)/bin path over global if both exist. +ifeq (,$(wildcard $(OPERATOR_SDK))) +ifeq (,$(shell which operator-sdk 2>/dev/null)) + @{ \ + set -e ;\ + mkdir -p $(dir $(OPERATOR_SDK)) ;\ + curl -sSLo $(OPERATOR_SDK) https://github.com/operator-framework/operator-sdk/releases/download/v1.31.0/operator-sdk_$(OS)_$(ARCHA) ;\ + chmod +x $(OPERATOR_SDK) ;\ + } +else +OPERATOR_SDK = $(shell which operator-sdk) +endif +endif + .PHONY: ansible-operator ANSIBLE_OPERATOR = $(shell pwd)/bin/ansible-operator ansible-operator: ## Download ansible-operator locally if necessary, preferring the $(pwd)/bin path over global if both exist. @@ -157,7 +173,7 @@ ifeq (,$(shell which ansible-operator 2>/dev/null)) @{ \ set -e ;\ mkdir -p $(dir $(ANSIBLE_OPERATOR)) ;\ - curl -sSLo $(ANSIBLE_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/v1.26.0/ansible-operator_$(OS)_$(ARCHA) ;\ + curl -sSLo $(ANSIBLE_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/v1.31.0/ansible-operator_$(OS)_$(ARCHA) ;\ chmod +x $(ANSIBLE_OPERATOR) ;\ } else @@ -166,11 +182,11 @@ endif endif .PHONY: bundle -bundle: kustomize ## Generate bundle manifests and metadata, then validate generated files. - operator-sdk generate kustomize manifests -q +bundle: kustomize operator-sdk ## Generate bundle manifests and metadata, then validate generated files. + $(OPERATOR_SDK) generate kustomize manifests -q cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG) - $(KUSTOMIZE) build config/manifests | operator-sdk generate bundle -q --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS) - operator-sdk bundle validate ./bundle + $(KUSTOMIZE) build config/manifests | $(OPERATOR_SDK) generate bundle -q --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS) + $(OPERATOR_SDK) bundle validate ./bundle .PHONY: bundle-build bundle-build: ## Build the bundle image.