From a74002ae59c086f772242583d06dd022dfd3ea77 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Mon, 16 Oct 2023 11:37:40 -0500 Subject: [PATCH 01/17] [patch] do not validate storage class for update --- ibm/mas_devops/roles/mongodb/tasks/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/main.yml b/ibm/mas_devops/roles/mongodb/tasks/main.yml index f2072e4be..48a632304 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/main.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/main.yml @@ -11,7 +11,8 @@ - include_tasks: tasks/determine-storage-classes.yml when: - mongodb_provider == "community" - - mongodb_action != "none" + - mongodb_action != "update" + - mongodb_action != "none" # 3. Run the install / uninstall for specified provider # ----------------------------------------------------------------------------- From 1c8894a1cecb033f13574705fbdec3a2298502c3 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Mon, 16 Oct 2023 11:41:10 -0500 Subject: [PATCH 02/17] [patch] do not validate storage class for update --- ibm/mas_devops/roles/mongodb/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/main.yml b/ibm/mas_devops/roles/mongodb/tasks/main.yml index 48a632304..8dd9500b5 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/main.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/main.yml @@ -11,8 +11,8 @@ - include_tasks: tasks/determine-storage-classes.yml when: - mongodb_provider == "community" - - mongodb_action != "update" - mongodb_action != "none" + - mongodb_action != "update" # 3. Run the install / uninstall for specified provider # ----------------------------------------------------------------------------- From f21fc4c5f418be2ea5198ec65fe6765a22de509c Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Mon, 16 Oct 2023 11:42:43 -0500 Subject: [PATCH 03/17] [patch] do not validate storage class for update --- ibm/mas_devops/roles/mongodb/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/main.yml b/ibm/mas_devops/roles/mongodb/tasks/main.yml index 8dd9500b5..57d048b9c 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/main.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/main.yml @@ -11,8 +11,8 @@ - include_tasks: tasks/determine-storage-classes.yml when: - mongodb_provider == "community" - - mongodb_action != "none" - - mongodb_action != "update" + - mongodb_action != "none" + - mongodb_action != "update" # 3. Run the install / uninstall for specified provider # ----------------------------------------------------------------------------- From 03bc87b09082b3b2724c7052400fd32a771d193b Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Tue, 17 Oct 2023 09:23:09 -0500 Subject: [PATCH 04/17] [patch] create upgrade action for MongoDB --- .../roles/mongodb/tasks/providers/community/upgrade.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml new file mode 100644 index 000000000..697c34100 --- /dev/null +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml @@ -0,0 +1,6 @@ +--- + +# 1. Running the install action will upgrade MongoDB +# ----------------------------------------------------------------------------- +- include_tasks: "install.yml" + From 070187fed36cdce6808466b9e4916eaf4b5ee436 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Tue, 17 Oct 2023 09:32:39 -0500 Subject: [PATCH 05/17] [patch] create upgrade action for MongoDB --- ibm/mas_devops/roles/mongodb/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/mongodb/README.md b/ibm/mas_devops/roles/mongodb/README.md index 4ba50f297..4a20f10c6 100644 --- a/ibm/mas_devops/roles/mongodb/README.md +++ b/ibm/mas_devops/roles/mongodb/README.md @@ -51,7 +51,7 @@ Determines which action needs to be performed w.r.t mongodb for a specfied `prov ``` Following Providers supports below mentioned MONGODB_ACTION values: 1. Provider : community - Supported MONGODB_ACTION values : install,uninstall + Supported MONGODB_ACTION values : install,uninstall,upgrade 2. Provider: aws Supported MONGODB_ACTION values : install,uninstall,docdb_secret_rotate 3. Provider: ibm From b27f0282a6b9bfc50cf4241cc772ea042bb4f7c8 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Tue, 17 Oct 2023 09:34:14 -0500 Subject: [PATCH 06/17] [patch] create upgrade action for MongoDB --- .../roles/mongodb/tasks/providers/community/upgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml index 697c34100..699f5b367 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml @@ -1,6 +1,6 @@ --- -# 1. Running the install action will upgrade MongoDB +# 1. Running the install action will upgrade MongoDB # ----------------------------------------------------------------------------- - include_tasks: "install.yml" From 669329e8b71afe9b5273c139936e85004fc6ba83 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Tue, 17 Oct 2023 09:38:40 -0500 Subject: [PATCH 07/17] [patch] create upgrade action for MongoDB --- ibm/mas_devops/roles/mongodb/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/main.yml b/ibm/mas_devops/roles/mongodb/tasks/main.yml index 57d048b9c..d1b410e37 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/main.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/main.yml @@ -12,7 +12,7 @@ when: - mongodb_provider == "community" - mongodb_action != "none" - - mongodb_action != "update" + - mongodb_action != "upgrade" # 3. Run the install / uninstall for specified provider # ----------------------------------------------------------------------------- From 46bffca141b0524455253ec8cc266427b6d4337e Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Tue, 17 Oct 2023 09:50:17 -0500 Subject: [PATCH 08/17] [patch] create upgrade action for MongoDB --- .../roles/mongodb/tasks/providers/community/upgrade.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml index 699f5b367..395785266 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml @@ -2,5 +2,5 @@ # 1. Running the install action will upgrade MongoDB # ----------------------------------------------------------------------------- -- include_tasks: "install.yml" - +- name: "community : upgrade : Call install task" + include_tasks: tasks/providers/community/install.yml From c7a5b7a61fa3bf7ea51def6d68e889922a8b79c3 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Tue, 17 Oct 2023 10:26:38 -0500 Subject: [PATCH 09/17] [patch] create upgrade action for MongoDB --- ibm/mas_devops/roles/mongodb/tasks/main.yml | 2 +- .../roles/mongodb/tasks/providers/community/upgrade.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/main.yml b/ibm/mas_devops/roles/mongodb/tasks/main.yml index d1b410e37..7371fb647 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/main.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/main.yml @@ -16,6 +16,6 @@ # 3. Run the install / uninstall for specified provider # ----------------------------------------------------------------------------- -- include_tasks: "tasks/providers/{{ mongodb_provider }}/{{ mongodb_action }}.yml" +- include_tasks: "{{ role_path }}/tasks/providers/{{ mongodb_provider }}/{{ mongodb_action }}.yml" when: - mongodb_action != "none" diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml index 395785266..ad04374c3 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml @@ -3,4 +3,4 @@ # 1. Running the install action will upgrade MongoDB # ----------------------------------------------------------------------------- - name: "community : upgrade : Call install task" - include_tasks: tasks/providers/community/install.yml + include_tasks: "{{ role_path }}/tasks/providers/community/install.yml" From e562ff94dfbd77eac01c345d2df00b12000bc0fc Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Fri, 10 Nov 2023 11:15:28 -0600 Subject: [PATCH 10/17] use current storage class for mongodb upgrade --- .../mongodb/tasks/providers/community/install-mongo.yml | 1 + .../roles/mongodb/templates/community/0.7.8/cr.yml.j2 | 8 ++++++++ .../roles/mongodb/templates/community/0.7.9/cr.yml.j2 | 9 +++++++++ .../roles/mongodb/templates/community/0.8.3/cr.yml.j2 | 8 ++++++++ 4 files changed, 26 insertions(+) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml index a1f32ffcd..cac7e3c78 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml @@ -190,6 +190,7 @@ vars: current_mongodb_version: "{{ existing_mongodb.resources[0].spec.version }}" current_mongodb_image: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.template.spec.containers[0].image }}" + current_mongodb_storage_class: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplate[0].spec.storageClassName }}" current_mongo_operator_image: "{{ existing_mongo_operator.resources[0].spec.containers[0].image }}" when: - not controlled_upgrade diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 index 353e439df..201522b1f 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 @@ -72,7 +72,11 @@ spec: name: data-volume spec: accessModes: [ "ReadWriteOnce" ] +{% if controlled_upgrade %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" +{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_data }}" @@ -80,7 +84,11 @@ spec: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] +{% if controlled_upgrade %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" +{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_logs }}" diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 index 353e439df..6d5c42e7e 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 @@ -72,7 +72,12 @@ spec: name: data-volume spec: accessModes: [ "ReadWriteOnce" ] +{% if controlled_upgrade %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" +{% endif %} + resources: requests: storage: "{{ mongodb_storage_capacity_data }}" @@ -80,7 +85,11 @@ spec: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] +{% if controlled_upgrade %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" +{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_logs }}" diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 index 51b8a460e..a18bd24f9 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 @@ -73,7 +73,11 @@ spec: name: data-volume spec: accessModes: [ "ReadWriteOnce" ] +{% if controlled_upgrade %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" +{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_data }}" @@ -81,7 +85,11 @@ spec: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] +{% if controlled_upgrade %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" +{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_logs }}" From aa0717f35a6e17a8c5865db56c0164a184d6c523 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Fri, 10 Nov 2023 11:20:27 -0600 Subject: [PATCH 11/17] use current storage class for mongodb upgrade --- .../roles/mongodb/templates/community/0.7.8/cr.yml.j2 | 4 ++-- .../roles/mongodb/templates/community/0.7.9/cr.yml.j2 | 4 ++-- .../roles/mongodb/templates/community/0.8.3/cr.yml.j2 | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 index 201522b1f..79094ee70 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 @@ -73,7 +73,7 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} @@ -85,7 +85,7 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 index 6d5c42e7e..e3409467d 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 @@ -73,7 +73,7 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} @@ -86,7 +86,7 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 index a18bd24f9..e2b1cfc6b 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 @@ -74,7 +74,7 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} @@ -86,7 +86,7 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} From 6cdf3f79852fd878a379dbb3d272d58163944a2f Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Fri, 10 Nov 2023 12:56:13 -0600 Subject: [PATCH 12/17] use current storage class for mongodb upgrade --- .../tasks/providers/community/install-mongo.yml | 5 ++++- .../mongodb/templates/community/0.7.8/cr.yml.j2 | 12 ++++++++++-- .../mongodb/templates/community/0.7.9/cr.yml.j2 | 17 ++++++++++++----- .../mongodb/templates/community/0.8.3/cr.yml.j2 | 16 ++++++++++++---- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml index cac7e3c78..a034b11f0 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml @@ -190,7 +190,10 @@ vars: current_mongodb_version: "{{ existing_mongodb.resources[0].spec.version }}" current_mongodb_image: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.template.spec.containers[0].image }}" - current_mongodb_storage_class: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplate[0].spec.storageClassName }}" + current_mongodb_storage_class_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "data-volume") | .spec.storageClassName }}" + current_mongodb_storage_class_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "logs-volume") | .spec.storageClassName }}" + current_mongodb_storage_capacity_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "data-volume") | .spec.resources.requests.storage}}" + current_mongodb_storage_capacity_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "logs-volume") | .spec.resources.requests.storage}}" current_mongo_operator_image: "{{ existing_mongo_operator.resources[0].spec.containers[0].image }}" when: - not controlled_upgrade diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 index 79094ee70..563d901d6 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 @@ -73,22 +73,30 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class_data }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: +{% if controlled_upgrade %} + storage: "{{ current_mongodb_storage_capacity_data }}" +{% else %} storage: "{{ mongodb_storage_capacity_data }}" +{% endif %} - metadata: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class }}" + storageClassName: "{{ current_mongodb_storage_class_logs }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: +{% if controlled_upgrade %} + storage: "{{ current_mongodb_storage_capacity_logs }}" +{% else %} storage: "{{ mongodb_storage_capacity_logs }}" +{% endif %} diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 index e3409467d..563d901d6 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 @@ -73,23 +73,30 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class }}" -{% else %} + storageClassName: "{{ current_mongodb_storage_class_data }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} - resources: requests: +{% if controlled_upgrade %} + storage: "{{ current_mongodb_storage_capacity_data }}" +{% else %} storage: "{{ mongodb_storage_capacity_data }}" +{% endif %} - metadata: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class }}" -{% else %} + storageClassName: "{{ current_mongodb_storage_class_logs }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: +{% if controlled_upgrade %} + storage: "{{ current_mongodb_storage_capacity_logs }}" +{% else %} storage: "{{ mongodb_storage_capacity_logs }}" +{% endif %} diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 index e2b1cfc6b..c649f2db1 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 @@ -74,22 +74,30 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class }}" -{% else %} + storageClassName: "{{ current_mongodb_storage_class_data }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: +{% if controlled_upgrade %} + storage: "{{ current_mongodb_storage_capacity_data }}" +{% else %} storage: "{{ mongodb_storage_capacity_data }}" +{% endif %} - metadata: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class }}" -{% else %} + storageClassName: "{{ current_mongodb_storage_class_logs }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: +{% if controlled_upgrade %} + storage: "{{ current_mongodb_storage_capacity_logs }}" +{% else %} storage: "{{ mongodb_storage_capacity_logs }}" +{% endif %} From 7d705a808cb6cea455dbb57e11d692c6e8a05230 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Fri, 10 Nov 2023 14:36:50 -0600 Subject: [PATCH 13/17] use current storage class for mongodb upgrade --- .../mongodb/tasks/providers/community/install-mongo.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml index a034b11f0..cb523a799 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml @@ -190,10 +190,10 @@ vars: current_mongodb_version: "{{ existing_mongodb.resources[0].spec.version }}" current_mongodb_image: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.template.spec.containers[0].image }}" - current_mongodb_storage_class_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "data-volume") | .spec.storageClassName }}" - current_mongodb_storage_class_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "logs-volume") | .spec.storageClassName }}" - current_mongodb_storage_capacity_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "data-volume") | .spec.resources.requests.storage}}" - current_mongodb_storage_capacity_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[] | select (.metadata.name == "logs-volume") | .spec.resources.requests.storage}}" + current_mongodb_storage_class_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'data-volume'].spec.storageClassName }}" + current_mongodb_storage_class_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'logs-volume'].spec.storageClassName }}" + current_mongodb_storage_capacity_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'data-volume'].spec.resources.requests.storage}}" + current_mongodb_storage_capacity_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'logs-volume'].spec.resources.requests.storage}}" current_mongo_operator_image: "{{ existing_mongo_operator.resources[0].spec.containers[0].image }}" when: - not controlled_upgrade From 3186d3b0f8bd50c14cbceae7e71be82721f14359 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Tue, 14 Nov 2023 13:49:51 -0600 Subject: [PATCH 14/17] [patch]reuse current storageClassName for mongodb conrolled upgrade --- .../mongodb/tasks/providers/community/install-mongo.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml index cb523a799..34a194105 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml @@ -190,10 +190,10 @@ vars: current_mongodb_version: "{{ existing_mongodb.resources[0].spec.version }}" current_mongodb_image: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.template.spec.containers[0].image }}" - current_mongodb_storage_class_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'data-volume'].spec.storageClassName }}" - current_mongodb_storage_class_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'logs-volume'].spec.storageClassName }}" - current_mongodb_storage_capacity_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'data-volume'].spec.resources.requests.storage}}" - current_mongodb_storage_capacity_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates[?metadata.name == 'logs-volume'].spec.resources.requests.storage}}" + current_mongodb_storage_class_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'data-volume') | map(attribute='spec.storageClassName') | first }}" + current_mongodb_storage_class_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'logs-volume') | map(attribute='spec.storageClassName') | first }}" + current_mongodb_storage_capacity_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'data-volume') | map(attribute='spec.resources.requests.storage') | first }}" + current_mongodb_storage_capacity_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'logs-volume') | map(attribute='spec.resources.requests.storage') | first }}" current_mongo_operator_image: "{{ existing_mongo_operator.resources[0].spec.containers[0].image }}" when: - not controlled_upgrade From 57a16ea6ed4cf4b1b870bdd84b6b3f0d951e8c38 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Fri, 17 Nov 2023 09:10:05 -0600 Subject: [PATCH 15/17] do not update entire MongoDBCommunity CR on update --- ibm/mas_devops/roles/mongodb/README.md | 2 +- ibm/mas_devops/roles/mongodb/tasks/main.yml | 1 - .../providers/community/install-mongo.yml | 21 +++++++++++++++---- .../tasks/providers/community/upgrade.yml | 6 ------ .../templates/community/0.7.8/cr.yml.j2 | 12 ++--------- .../templates/community/0.7.9/cr.yml.j2 | 17 +++++---------- .../templates/community/0.8.3/cr.yml.j2 | 16 ++++---------- 7 files changed, 29 insertions(+), 46 deletions(-) delete mode 100644 ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml diff --git a/ibm/mas_devops/roles/mongodb/README.md b/ibm/mas_devops/roles/mongodb/README.md index 8b7bbcde6..e895e35c4 100644 --- a/ibm/mas_devops/roles/mongodb/README.md +++ b/ibm/mas_devops/roles/mongodb/README.md @@ -51,7 +51,7 @@ Determines which action needs to be performed w.r.t mongodb for a specfied `prov ``` Following Providers supports below mentioned MONGODB_ACTION values: 1. Provider : community - Supported MONGODB_ACTION values : install,uninstall,upgrade + Supported MONGODB_ACTION values : install,uninstall 2. Provider: aws Supported MONGODB_ACTION values : install,uninstall,docdb_secret_rotate 3. Provider: ibm diff --git a/ibm/mas_devops/roles/mongodb/tasks/main.yml b/ibm/mas_devops/roles/mongodb/tasks/main.yml index 7371fb647..9e2f1602b 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/main.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/main.yml @@ -12,7 +12,6 @@ when: - mongodb_provider == "community" - mongodb_action != "none" - - mongodb_action != "upgrade" # 3. Run the install / uninstall for specified provider # ----------------------------------------------------------------------------- diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml index 34a194105..1fa261878 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml @@ -190,10 +190,7 @@ vars: current_mongodb_version: "{{ existing_mongodb.resources[0].spec.version }}" current_mongodb_image: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.template.spec.containers[0].image }}" - current_mongodb_storage_class_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'data-volume') | map(attribute='spec.storageClassName') | first }}" - current_mongodb_storage_class_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'logs-volume') | map(attribute='spec.storageClassName') | first }}" - current_mongodb_storage_capacity_data: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'data-volume') | map(attribute='spec.resources.requests.storage') | first }}" - current_mongodb_storage_capacity_logs: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplates | selectattr('metadata.name', 'equalto', 'logs-volume') | map(attribute='spec.resources.requests.storage') | first }}" + current_mongodb_storage_class: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplate[0].spec.storageClassName }}" current_mongo_operator_image: "{{ existing_mongo_operator.resources[0].spec.containers[0].image }}" when: - not controlled_upgrade @@ -355,6 +352,22 @@ kubernetes.core.k8s: apply: yes definition: "{{ lookup('template', 'templates/community/{{ mongodb_ce_version }}/cr.yml.j2') }}" + when: + - not controlled_upgrade + +- name: "community : install : Update MongoDb version" + kubernetes.core.k8s_json_patch: + api_version: mongodbcommunity.mongodb.com/v1 + name: "mas-mongo-ce" + namespace: "{{ mongodb_namespace }}" + kind: MongoDBCommunity + patch: + - op: replace + path: /spec/statefulSet/spec/template/spec/containers[0]/image + value: "{{ target_mongodb_image }}" + when: + - controlled_upgrade + - target_mongodb_version != current_mongodb_version - name: "community : install : Set expected MongoDb version to {{ current_mongodb_version }}" set_fact: diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml deleted file mode 100644 index ad04374c3..000000000 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/upgrade.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- - -# 1. Running the install action will upgrade MongoDB -# ----------------------------------------------------------------------------- -- name: "community : upgrade : Call install task" - include_tasks: "{{ role_path }}/tasks/providers/community/install.yml" diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 index 563d901d6..201522b1f 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 @@ -73,30 +73,22 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class_data }}" + storageClassName: "{{ current_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: -{% if controlled_upgrade %} - storage: "{{ current_mongodb_storage_capacity_data }}" -{% else %} storage: "{{ mongodb_storage_capacity_data }}" -{% endif %} - metadata: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class_logs }}" + storageClassName: "{{ current_storage_class }}" {% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: -{% if controlled_upgrade %} - storage: "{{ current_mongodb_storage_capacity_logs }}" -{% else %} storage: "{{ mongodb_storage_capacity_logs }}" -{% endif %} diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 index 563d901d6..6d5c42e7e 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 @@ -73,30 +73,23 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class_data }}" -{% else %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} + resources: requests: -{% if controlled_upgrade %} - storage: "{{ current_mongodb_storage_capacity_data }}" -{% else %} storage: "{{ mongodb_storage_capacity_data }}" -{% endif %} - metadata: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class_logs }}" -{% else %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: -{% if controlled_upgrade %} - storage: "{{ current_mongodb_storage_capacity_logs }}" -{% else %} storage: "{{ mongodb_storage_capacity_logs }}" -{% endif %} diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 index c649f2db1..a18bd24f9 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 @@ -74,30 +74,22 @@ spec: spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class_data }}" -{% else %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: -{% if controlled_upgrade %} - storage: "{{ current_mongodb_storage_capacity_data }}" -{% else %} storage: "{{ mongodb_storage_capacity_data }}" -{% endif %} - metadata: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] {% if controlled_upgrade %} - storageClassName: "{{ current_mongodb_storage_class_logs }}" -{% else %} + storageClassName: "{{ current_storage_class }}" +{% else %} storageClassName: "{{ mongodb_storage_class }}" {% endif %} resources: requests: -{% if controlled_upgrade %} - storage: "{{ current_mongodb_storage_capacity_logs }}" -{% else %} storage: "{{ mongodb_storage_capacity_logs }}" -{% endif %} From 12aba24d5865916fc48be723c1a28a7d5931eea9 Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Fri, 17 Nov 2023 09:25:53 -0600 Subject: [PATCH 16/17] remove trailing space --- .../roles/mongodb/tasks/providers/community/install-mongo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml index 1fa261878..fb6fdab7c 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml @@ -365,7 +365,7 @@ - op: replace path: /spec/statefulSet/spec/template/spec/containers[0]/image value: "{{ target_mongodb_image }}" - when: + when: - controlled_upgrade - target_mongodb_version != current_mongodb_version From 3afe9077db2204a04bcee8a9c98df069657adabc Mon Sep 17 00:00:00 2001 From: Rick Acree Date: Mon, 27 Nov 2023 13:57:43 -0600 Subject: [PATCH 17/17] patch version for update --- .../mongodb/tasks/providers/community/install-mongo.yml | 4 +++- .../roles/mongodb/templates/community/0.7.8/cr.yml.j2 | 8 -------- .../roles/mongodb/templates/community/0.7.9/cr.yml.j2 | 9 --------- .../roles/mongodb/templates/community/0.8.3/cr.yml.j2 | 8 -------- 4 files changed, 3 insertions(+), 26 deletions(-) diff --git a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml index fb6fdab7c..86364dd0e 100644 --- a/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml +++ b/ibm/mas_devops/roles/mongodb/tasks/providers/community/install-mongo.yml @@ -190,7 +190,6 @@ vars: current_mongodb_version: "{{ existing_mongodb.resources[0].spec.version }}" current_mongodb_image: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.template.spec.containers[0].image }}" - current_mongodb_storage_class: "{{ existing_mongodb.resources[0].spec.statefulSet.spec.volumeClaimTemplate[0].spec.storageClassName }}" current_mongo_operator_image: "{{ existing_mongo_operator.resources[0].spec.containers[0].image }}" when: - not controlled_upgrade @@ -365,6 +364,9 @@ - op: replace path: /spec/statefulSet/spec/template/spec/containers[0]/image value: "{{ target_mongodb_image }}" + - op: replace + path: /spec/version + value: "{{ target_mongodb_version }}" when: - controlled_upgrade - target_mongodb_version != current_mongodb_version diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 index 201522b1f..353e439df 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.8/cr.yml.j2 @@ -72,11 +72,7 @@ spec: name: data-volume spec: accessModes: [ "ReadWriteOnce" ] -{% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" -{% else %} storageClassName: "{{ mongodb_storage_class }}" -{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_data }}" @@ -84,11 +80,7 @@ spec: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] -{% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" -{% else %} storageClassName: "{{ mongodb_storage_class }}" -{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_logs }}" diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 index 6d5c42e7e..353e439df 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.7.9/cr.yml.j2 @@ -72,12 +72,7 @@ spec: name: data-volume spec: accessModes: [ "ReadWriteOnce" ] -{% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" -{% else %} storageClassName: "{{ mongodb_storage_class }}" -{% endif %} - resources: requests: storage: "{{ mongodb_storage_capacity_data }}" @@ -85,11 +80,7 @@ spec: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] -{% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" -{% else %} storageClassName: "{{ mongodb_storage_class }}" -{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_logs }}" diff --git a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 index a18bd24f9..51b8a460e 100644 --- a/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 +++ b/ibm/mas_devops/roles/mongodb/templates/community/0.8.3/cr.yml.j2 @@ -73,11 +73,7 @@ spec: name: data-volume spec: accessModes: [ "ReadWriteOnce" ] -{% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" -{% else %} storageClassName: "{{ mongodb_storage_class }}" -{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_data }}" @@ -85,11 +81,7 @@ spec: name: logs-volume spec: accessModes: [ "ReadWriteOnce" ] -{% if controlled_upgrade %} - storageClassName: "{{ current_storage_class }}" -{% else %} storageClassName: "{{ mongodb_storage_class }}" -{% endif %} resources: requests: storage: "{{ mongodb_storage_capacity_logs }}"