From da683233202ffd3f648e95f8fbd4683ac4a60e78 Mon Sep 17 00:00:00 2001 From: oraz Date: Tue, 26 Dec 2023 13:11:31 +0200 Subject: [PATCH 1/2] Set replace annotation Even though we use 'skipRange' for defining from which versions we can update to the version of the CSV, we also need to add the 'replace' field. It should point to the last released version, and ensures that the old version isn't deleted from the index. --- Makefile | 11 ++++++++++- ...de-maintenance-operator.clusterserviceversion.yaml | 1 + ...de-maintenance-operator.clusterserviceversion.yaml | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 297b41876..2bd11726a 100755 --- a/Makefile +++ b/Makefile @@ -47,6 +47,7 @@ export DEFAULT_CHANNEL # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) VERSION ?= $(DEFAULT_VERSION) +PREVIOUS_VERSION ?= $(DEFAULT_VERSION) export VERSION # CHANNELS define the bundle channels used in the bundle. @@ -199,12 +200,20 @@ DEFAULT_ICON_BASE64 := $(shell base64 --wrap=0 ./config/assets/nmo_blue_icon.png export ICON_BASE64 ?= ${DEFAULT_ICON_BASE64} .PHONY: bundle-update -bundle-update: ## Update containerImage, createdAt, and icon fields in the bundle's CSV +bundle-update: verify-previous-version ## Update CSV fields and validate the bundle directory sed -r -i "s|containerImage: .*|containerImage: $(IMG)|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml sed -r -i "s|createdAt: .*|createdAt: `date '+%Y-%m-%d %T'`|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml + sed -r -i "s|replaces: .*|replaces: self-node-remediation.v${PREVIOUS_VERSION}|;" ${BUNDLE_CSV} sed -r -i "s|base64data:.*|base64data: ${ICON_BASE64}|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml $(MAKE) bundle-validate +.PHONY: verify-previous-version +verify-previous-version: ## Verifies that PREVIOUS_VERSION variable is set + @if [ $(VERSION) != $(DEFAULT_VERSION) ] && [ $(PREVIOUS_VERSION) = $(DEFAULT_VERSION) ]; then \ + echo "Error: PREVIOUS_VERSION must be set for the selected VERSION"; \ + exit 1; \ + fi + .PHONY: bundle-reset-date bundle-reset-date: ## Reset bundle's createdAt sed -r -i "s|createdAt: .*|createdAt: \"\"|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml diff --git a/bundle/manifests/node-maintenance-operator.clusterserviceversion.yaml b/bundle/manifests/node-maintenance-operator.clusterserviceversion.yaml index f96ec951f..d6ada7744 100755 --- a/bundle/manifests/node-maintenance-operator.clusterserviceversion.yaml +++ b/bundle/manifests/node-maintenance-operator.clusterserviceversion.yaml @@ -344,6 +344,7 @@ spec: provider: name: Medik8s url: https://github.com/medik8s + replaces: node-maintenance-operator.v0.0.1 version: 0.0.1 webhookdefinitions: - admissionReviewVersions: diff --git a/config/manifests/bases/node-maintenance-operator.clusterserviceversion.yaml b/config/manifests/bases/node-maintenance-operator.clusterserviceversion.yaml index 4772835f4..7f466edf9 100644 --- a/config/manifests/bases/node-maintenance-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/node-maintenance-operator.clusterserviceversion.yaml @@ -99,4 +99,5 @@ spec: provider: name: Medik8s url: https://github.com/medik8s + replaces: node-maintenance-operator.v0.0.1 version: 0.0.0 From c9afe4abc16d70b089c407fee4aa3ca183ad48b6 Mon Sep 17 00:00:00 2001 From: oraz Date: Tue, 26 Dec 2023 13:12:31 +0200 Subject: [PATCH 2/2] Use BUNDLE_CSV in makefile Set bundle csv location once --- Makefile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 2bd11726a..d78ce5ce7 100755 --- a/Makefile +++ b/Makefile @@ -198,13 +198,14 @@ bundle-run: operator-sdk ## Run bundle image. Default NS is "openshift-operators ## Some addition to bundle creation in the bundle DEFAULT_ICON_BASE64 := $(shell base64 --wrap=0 ./config/assets/nmo_blue_icon.png) export ICON_BASE64 ?= ${DEFAULT_ICON_BASE64} +export BUNDLE_CSV ?= "./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml" .PHONY: bundle-update bundle-update: verify-previous-version ## Update CSV fields and validate the bundle directory - sed -r -i "s|containerImage: .*|containerImage: $(IMG)|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml - sed -r -i "s|createdAt: .*|createdAt: `date '+%Y-%m-%d %T'`|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml - sed -r -i "s|replaces: .*|replaces: self-node-remediation.v${PREVIOUS_VERSION}|;" ${BUNDLE_CSV} - sed -r -i "s|base64data:.*|base64data: ${ICON_BASE64}|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml + sed -r -i "s|containerImage: .*|containerImage: $(IMG)|;" ${BUNDLE_CSV} + sed -r -i "s|createdAt: .*|createdAt: `date '+%Y-%m-%d %T'`|;" ${BUNDLE_CSV} + sed -r -i "s|replaces: .*|replaces: $(OPERATOR_NAME)-operator.v${PREVIOUS_VERSION}|;" ${BUNDLE_CSV} + sed -r -i "s|base64data:.*|base64data: ${ICON_BASE64}|;" ${BUNDLE_CSV} $(MAKE) bundle-validate .PHONY: verify-previous-version @@ -216,11 +217,11 @@ verify-previous-version: ## Verifies that PREVIOUS_VERSION variable is set .PHONY: bundle-reset-date bundle-reset-date: ## Reset bundle's createdAt - sed -r -i "s|createdAt: .*|createdAt: \"\"|;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml + sed -r -i "s|createdAt: .*|createdAt: \"\"|;" ${BUNDLE_CSV} .PHONY: bundle-community bundle-community: bundle-k8s ## Update displayName, and description fields in the bundle's CSV - sed -r -i "s|displayName: Node Maintenance Operator|displayName: Node Maintenance Operator - Community Edition |;" ./bundle/manifests/$(OPERATOR_NAME)-operator.clusterserviceversion.yaml + sed -r -i "s|displayName: Node Maintenance Operator|displayName: Node Maintenance Operator - Community Edition |;" ${BUNDLE_CSV} $(MAKE) bundle-update ##@ Build