@@ -47,6 +47,10 @@ ifeq ($(USE_IMAGE_DIGESTS), true)
4747 BUNDLE_GEN_FLAGS += --use-image-digests
4848endif
4949
50+ # Set the Operator SDK version to use. By default, what is installed on the system is used.
51+ # This is useful for CI or a project to utilize a specific version of the operator-sdk toolkit.
52+ OPERATOR_SDK_VERSION ?= v1.30.0
53+
5054# Image URL to use all building/pushing image targets
5155IMG ?= $(IMAGE_TAG_BASE ) :$(VERSION )
5256
@@ -147,22 +151,38 @@ ifeq (,$(shell which helm-operator 2>/dev/null))
147151 @{ \
148152 set -e ;\
149153 mkdir -p $(dir $(HELM_OPERATOR)) ;\
150- curl -sSLo $(HELM_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/v1.29.0 /helm-operator_$(OS)_$(ARCH) ;\
154+ curl -sSLo $(HELM_OPERATOR) https://github.com/operator-framework/operator-sdk/releases/download/$(OPERATOR_SDK_VERSION) /helm-operator_$(OS)_$(ARCH) ;\
151155 chmod +x $(HELM_OPERATOR) ;\
152156 }
153157else
154158HELM_OPERATOR = $(shell which helm-operator)
155159endif
156160endif
157161
162+ .PHONY : operator-sdk
163+ OPERATOR_SDK ?= ./bin/operator-sdk
164+ operator-sdk : # # Download operator-sdk locally if necessary.
165+ ifeq (,$(wildcard $(OPERATOR_SDK ) ) )
166+ ifeq (, $(shell which operator-sdk 2>/dev/null) )
167+ @{ \
168+ set -e ;\
169+ mkdir -p $(dir $(OPERATOR_SDK)) ;\
170+ curl -sSLo $(OPERATOR_SDK) https://github.com/operator-framework/operator-sdk/releases/download/$(OPERATOR_SDK_VERSION)/operator-sdk_$(OS)_$(ARCH) ;\
171+ chmod +x $(OPERATOR_SDK) ;\
172+ }
173+ else
174+ OPERATOR_SDK = $(shell which operator-sdk)
175+ endif
176+ endif
177+
158178.PHONY : bundle
159- bundle : kustomize # # Generate bundle manifests and metadata, then validate generated files.
160- operator-sdk generate kustomize manifests --interactive=false -q
179+ bundle : kustomize operator-sdk # # Generate bundle manifests and metadata, then validate generated files.
180+ $( OPERATOR_SDK ) generate kustomize manifests --interactive=false -q
161181 cd config/manager && $(KUSTOMIZE ) edit set image controller=$(IMG )
162- $(KUSTOMIZE ) build config/manifests | operator-sdk generate bundle $(BUNDLE_GEN_FLAGS )
182+ $(KUSTOMIZE ) build config/manifests | $( OPERATOR_SDK ) generate bundle $(BUNDLE_GEN_FLAGS )
163183 @printf " %s\n" ' ' ' LABEL com.redhat.openshift.versions="v4.9"' ' LABEL com.redhat.delivery.operator.bundle=true' ' LABEL com.redhat.delivery.backport=true' >> bundle.Dockerfile
164184 @printf " %s\n" ' ' ' # OpenShift annotations.' ' com.redhat.openshift.versions: v4.9' >> bundle/metadata/annotations.yaml
165- operator-sdk bundle validate ./bundle
185+ $( OPERATOR_SDK ) bundle validate ./bundle
166186
167187.PHONY : bundle-build
168188bundle-build : # # Build the bundle image.
0 commit comments