diff --git a/changelog/fragments/helm-ansible-download-makefile.yaml b/changelog/fragments/helm-ansible-download-makefile.yaml new file mode 100644 index 0000000000..7de2f2cb41 --- /dev/null +++ b/changelog/fragments/helm-ansible-download-makefile.yaml @@ -0,0 +1,18 @@ +entries: + - description: > + Corrected the download URL for helm-operator and ansible-operator in their respective project types. + kind: bugfix + migration: + header: For Helm and Ansible projects, fix the helm-operator and ansible-operator URLs in the Makefile + body: > + Helm projects: `https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator-v1.3.0-$(ARCHOPER)-$(OSOPER)` + -> `https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator_$(OS)_$(ARCH)` + Ansible projects: `https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/ansible-operator-v1.3.0-$(ARCHOPER)-$(OSOPER)` + -> `https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/ansible-operator_$(OS)_$(ARCH)` + - description: > + Fixed the order of helm-operator, ansible-operator, and kustomize binary checks in the Makefile. + kind: bugfix + migration: + header: For Helm and Ansible projects, fix the helm-operator, ansible-operator, and kustomize Makefile rules + body: > + See the diff in [this PR](https://github.com/operator-framework/operator-sdk/pull/4407) for details. diff --git a/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go b/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go index 2a927b26fa..fcf32617f4 100644 --- a/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go +++ b/internal/plugins/ansible/v1/scaffolds/internal/templates/makefile.go @@ -101,34 +101,40 @@ docker-push: PATH := $(PATH):$(PWD)/bin SHELL := env PATH=$(PATH) /bin/sh -OS = $(shell uname -s | tr '[:upper:]' '[:lower:]') -ARCH = $(shell uname -m | sed 's/x86_64/amd64/') -OSOPER = $(shell uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/linux-gnu/') -ARCHOPER = $(shell uname -m ) +OS := $(shell uname -s | tr '[:upper:]' '[:lower:]') +ARCH := $(shell uname -m | sed 's/x86_64/amd64/') +# Download kustomize locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: kustomize +KUSTOMIZE = $(shell pwd)/bin/kustomize kustomize: -ifeq (, $(shell which kustomize 2>/dev/null)) +ifeq (,$(wildcard $(KUSTOMIZE))) +ifeq (,$(shell which kustomize 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/{{ .KustomizeVersion }}/kustomize_{{ .KustomizeVersion }}_$(OS)_$(ARCH).tar.gz | tar xzf - -C bin/ ;\ + mkdir -p $(dir $(KUSTOMIZE)) ;\ + curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/{{ .KustomizeVersion }}/kustomize_{{ .KustomizeVersion }}_$(OS)_$(ARCH).tar.gz | \ + tar xzf - -C bin/ ;\ } -KUSTOMIZE=$(realpath ./bin/kustomize) else -KUSTOMIZE=$(shell which kustomize) +KUSTOMIZE = $(shell which kustomize) +endif endif +# Download ansible-operator locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: ansible-operator +ANSIBLE_OPERATOR = $(shell pwd)/bin/ansible-operator ansible-operator: -ifeq (, $(shell which ansible-operator 2>/dev/null)) +ifeq (,$(wildcard $(ANSIBLE_OPERATOR))) +ifeq (,$(shell which ansible-operator 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -LO https://github.com/operator-framework/operator-sdk/releases/download/{{ .AnsibleOperatorVersion}}/ansible-operator-{{ .AnsibleOperatorVersion}}-$(ARCHOPER)-$(OSOPER) ;\ - mv ansible-operator-{{ .AnsibleOperatorVersion}}-$(ARCHOPER)-$(OSOPER) ./bin/ansible-operator ;\ - chmod +x ./bin/ansible-operator ;\ + mkdir -p $(dir $(ANSIBLE_OPERATOR)) ;\ + curl -sSLo $(ANSIBLE_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/{{ .AnsibleOperatorVersion }}/ansible-operator_$(OS)_$(ARCH) ;\ + chmod +x $(ANSIBLE_OPERATOR) ;\ } -ANSIBLE_OPERATOR=$(realpath ./bin/ansible-operator) else -ANSIBLE_OPERATOR=$(shell which ansible-operator) +ANSIBLE_OPERATOR = $(shell which ansible-operator) +endif endif ` diff --git a/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go b/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go index f5af0f1039..c530b16970 100644 --- a/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go +++ b/internal/plugins/helm/v1/scaffolds/internal/templates/makefile.go @@ -101,34 +101,40 @@ docker-push: PATH := $(PATH):$(PWD)/bin SHELL := env PATH=$(PATH) /bin/sh -OS = $(shell uname -s | tr '[:upper:]' '[:lower:]') -ARCH = $(shell uname -m | sed 's/x86_64/amd64/') -OSOPER = $(shell uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/linux-gnu/') -ARCHOPER = $(shell uname -m ) +OS := $(shell uname -s | tr '[:upper:]' '[:lower:]') +ARCH := $(shell uname -m | sed 's/x86_64/amd64/') +# Download kustomize locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: kustomize +KUSTOMIZE = $(shell pwd)/bin/kustomize kustomize: -ifeq (, $(shell which kustomize 2>/dev/null)) +ifeq (,$(wildcard $(KUSTOMIZE))) +ifeq (,$(shell which kustomize 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/{{ .KustomizeVersion }}/kustomize_{{ .KustomizeVersion }}_$(OS)_$(ARCH).tar.gz | tar xzf - -C bin/ ;\ + mkdir -p $(dir $(KUSTOMIZE)) ;\ + curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/{{ .KustomizeVersion }}/kustomize_{{ .KustomizeVersion }}_$(OS)_$(ARCH).tar.gz | \ + tar xzf - -C bin/ ;\ } -KUSTOMIZE=$(realpath ./bin/kustomize) else -KUSTOMIZE=$(shell which kustomize) +KUSTOMIZE = $(shell which kustomize) +endif endif +# Download helm-operator locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: helm-operator +HELM_OPERATOR = $(shell pwd)/bin/helm-operator helm-operator: -ifeq (, $(shell which helm-operator 2>/dev/null)) +ifeq (,$(wildcard $(HELM_OPERATOR))) +ifeq (,$(shell which helm-operator 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -LO https://github.com/operator-framework/operator-sdk/releases/download/{{ .HelmOperatorVersion }}/helm-operator-{{ .HelmOperatorVersion }}-$(ARCHOPER)-$(OSOPER) ;\ - mv helm-operator-{{ .HelmOperatorVersion }}-$(ARCHOPER)-$(OSOPER) ./bin/helm-operator ;\ - chmod +x ./bin/helm-operator ;\ + mkdir -p $(dir $(HELM_OPERATOR)) ;\ + curl -sSLo $(HELM_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/{{ .HelmOperatorVersion }}/helm-operator_$(OS)_$(ARCH) ;\ + chmod +x $(HELM_OPERATOR) ;\ } -HELM_OPERATOR=$(realpath ./bin/helm-operator) else -HELM_OPERATOR=$(shell which helm-operator) +HELM_OPERATOR = $(shell which helm-operator) +endif endif ` diff --git a/testdata/ansible/memcached-operator/Makefile b/testdata/ansible/memcached-operator/Makefile index 3aeddf1d18..ae19e3034d 100644 --- a/testdata/ansible/memcached-operator/Makefile +++ b/testdata/ansible/memcached-operator/Makefile @@ -47,35 +47,41 @@ docker-push: PATH := $(PATH):$(PWD)/bin SHELL := env PATH=$(PATH) /bin/sh -OS = $(shell uname -s | tr '[:upper:]' '[:lower:]') -ARCH = $(shell uname -m | sed 's/x86_64/amd64/') -OSOPER = $(shell uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/linux-gnu/') -ARCHOPER = $(shell uname -m ) +OS := $(shell uname -s | tr '[:upper:]' '[:lower:]') +ARCH := $(shell uname -m | sed 's/x86_64/amd64/') +# Download kustomize locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: kustomize +KUSTOMIZE = $(shell pwd)/bin/kustomize kustomize: -ifeq (, $(shell which kustomize 2>/dev/null)) +ifeq (,$(wildcard $(KUSTOMIZE))) +ifeq (,$(shell which kustomize 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.5.4/kustomize_v3.5.4_$(OS)_$(ARCH).tar.gz | tar xzf - -C bin/ ;\ + mkdir -p $(dir $(KUSTOMIZE)) ;\ + curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.5.4/kustomize_v3.5.4_$(OS)_$(ARCH).tar.gz | \ + tar xzf - -C bin/ ;\ } -KUSTOMIZE=$(realpath ./bin/kustomize) else -KUSTOMIZE=$(shell which kustomize) +KUSTOMIZE = $(shell which kustomize) +endif endif +# Download ansible-operator locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: ansible-operator +ANSIBLE_OPERATOR = $(shell pwd)/bin/ansible-operator ansible-operator: -ifeq (, $(shell which ansible-operator 2>/dev/null)) +ifeq (,$(wildcard $(ANSIBLE_OPERATOR))) +ifeq (,$(shell which ansible-operator 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/ansible-operator-v1.3.0-$(ARCHOPER)-$(OSOPER) ;\ - mv ansible-operator-v1.3.0-$(ARCHOPER)-$(OSOPER) ./bin/ansible-operator ;\ - chmod +x ./bin/ansible-operator ;\ + mkdir -p $(dir $(ANSIBLE_OPERATOR)) ;\ + curl -sSLo $(ANSIBLE_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/ansible-operator_$(OS)_$(ARCH) ;\ + chmod +x $(ANSIBLE_OPERATOR) ;\ } -ANSIBLE_OPERATOR=$(realpath ./bin/ansible-operator) else -ANSIBLE_OPERATOR=$(shell which ansible-operator) +ANSIBLE_OPERATOR = $(shell which ansible-operator) +endif endif # Generate bundle manifests and metadata, then validate generated files. diff --git a/testdata/helm/memcached-operator/Makefile b/testdata/helm/memcached-operator/Makefile index 4fdc5c786e..f0fd1f98c8 100644 --- a/testdata/helm/memcached-operator/Makefile +++ b/testdata/helm/memcached-operator/Makefile @@ -47,35 +47,41 @@ docker-push: PATH := $(PATH):$(PWD)/bin SHELL := env PATH=$(PATH) /bin/sh -OS = $(shell uname -s | tr '[:upper:]' '[:lower:]') -ARCH = $(shell uname -m | sed 's/x86_64/amd64/') -OSOPER = $(shell uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/linux-gnu/') -ARCHOPER = $(shell uname -m ) +OS := $(shell uname -s | tr '[:upper:]' '[:lower:]') +ARCH := $(shell uname -m | sed 's/x86_64/amd64/') +# Download kustomize locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: kustomize +KUSTOMIZE = $(shell pwd)/bin/kustomize kustomize: -ifeq (, $(shell which kustomize 2>/dev/null)) +ifeq (,$(wildcard $(KUSTOMIZE))) +ifeq (,$(shell which kustomize 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.5.4/kustomize_v3.5.4_$(OS)_$(ARCH).tar.gz | tar xzf - -C bin/ ;\ + mkdir -p $(dir $(KUSTOMIZE)) ;\ + curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.5.4/kustomize_v3.5.4_$(OS)_$(ARCH).tar.gz | \ + tar xzf - -C bin/ ;\ } -KUSTOMIZE=$(realpath ./bin/kustomize) else -KUSTOMIZE=$(shell which kustomize) +KUSTOMIZE = $(shell which kustomize) +endif endif +# Download helm-operator locally if necessary, preferring the $(pwd)/bin path over global if both exist. +.PHONY: helm-operator +HELM_OPERATOR = $(shell pwd)/bin/helm-operator helm-operator: -ifeq (, $(shell which helm-operator 2>/dev/null)) +ifeq (,$(wildcard $(HELM_OPERATOR))) +ifeq (,$(shell which helm-operator 2>/dev/null)) @{ \ set -e ;\ - mkdir -p bin ;\ - curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator-v1.3.0-$(ARCHOPER)-$(OSOPER) ;\ - mv helm-operator-v1.3.0-$(ARCHOPER)-$(OSOPER) ./bin/helm-operator ;\ - chmod +x ./bin/helm-operator ;\ + mkdir -p $(dir $(HELM_OPERATOR)) ;\ + curl -sSLo $(HELM_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator_$(OS)_$(ARCH) ;\ + chmod +x $(HELM_OPERATOR) ;\ } -HELM_OPERATOR=$(realpath ./bin/helm-operator) else -HELM_OPERATOR=$(shell which helm-operator) +HELM_OPERATOR = $(shell which helm-operator) +endif endif # Generate bundle manifests and metadata, then validate generated files.