From 9a3641e966e1a5a8d32890bf266d1b18d0b984fa Mon Sep 17 00:00:00 2001 From: Sanjay Prabhakar Date: Tue, 5 Nov 2024 16:13:04 +0000 Subject: [PATCH 1/2] [patch] prevent mongo upgrade when featureCompatibilityVersion is not defined or set incorrectly. --- .../tasks/providers/community/validate-upgrade.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml index 7f6bb7fcdb..acbf3afbfa 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml @@ -24,6 +24,16 @@ that: "existing_mongo_version is version_compare(target_mongodb_version, '<=')" fail_msg: "Mongo downgrade is not allowed! Current mongo version: {{ existing_mongo_version }}, target mongo version {{ target_mongodb_version }}" +# For users installed or upgraded to mongo v4.4 using old CLI didn't have featureCompatibilityVersion set correctly. +- name: Assert featureCompatibilityVersion is present and equal to existing version. + assert: + that: + - existing_mongodb.resources[0].spec.featureCompatibilityVersion is defined and existing_mongodb.resources[0].spec.featureCompatibilityVersion != "" + - existing_mongodb.resources[0].spec.featureCompatibilityVersion == existing_mongo_minor_version + fail_msg: "Mongo upgrade is not allowed due to either missing featureCompatibilityVersion field or wrong version in featureCompatibilityVersion field in MongoDBCommunity CR" + when: mongodb_v5_upgrade or mongodb_v6_upgrade or mongodb_v7_upgrade + + # Only allow Mongo upgrades to be next compatible minor version - name: "Assert Mongo upgrade compatibility: {{ target_mongodb_version }} must be in {{ mongo_compatible_target_version[existing_mongo_version] }}" when: existing_mongo_minor_version != '4.2' # will skip this assertion if mongo v4.2 as we'll assist in the auto upgrade to v4.4 and v5 in a single run From 1ac794679f06a78fae31893cc9ce87a3d876a49d Mon Sep 17 00:00:00 2001 From: Sanjay Prabhakar Date: Tue, 5 Nov 2024 16:28:03 +0000 Subject: [PATCH 2/2] [patch] fixed trailing-space --- .../mongodb/tasks/providers/community/validate-upgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml index acbf3afbfa..c46b492e38 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/validate-upgrade.yml @@ -27,7 +27,7 @@ # For users installed or upgraded to mongo v4.4 using old CLI didn't have featureCompatibilityVersion set correctly. - name: Assert featureCompatibilityVersion is present and equal to existing version. assert: - that: + that: - existing_mongodb.resources[0].spec.featureCompatibilityVersion is defined and existing_mongodb.resources[0].spec.featureCompatibilityVersion != "" - existing_mongodb.resources[0].spec.featureCompatibilityVersion == existing_mongo_minor_version fail_msg: "Mongo upgrade is not allowed due to either missing featureCompatibilityVersion field or wrong version in featureCompatibilityVersion field in MongoDBCommunity CR"