From fc085192b1ba5a0822c2256a895ca0a1307b9976 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Sun, 22 Jun 2025 12:16:08 +0530 Subject: [PATCH 01/14] [patch] Add manage upgrade type support --- .../roles/suite_app_config/defaults/main.yml | 3 + .../vars/defaultspecs/manage.yml | 2 + .../roles/suite_app_install/README.md | 6 ++ .../roles/suite_app_upgrade/tasks/upgrade.yml | 59 +++++++++++++++++++ 4 files changed, 70 insertions(+) diff --git a/ibm/mas_devops/roles/suite_app_config/defaults/main.yml b/ibm/mas_devops/roles/suite_app_config/defaults/main.yml index 4f5749f815..0d68409616 100644 --- a/ibm/mas_devops/roles/suite_app_config/defaults/main.yml +++ b/ibm/mas_devops/roles/suite_app_config/defaults/main.yml @@ -30,6 +30,9 @@ cos_instance_name: "{{ lookup('env', 'COS_INSTANCE_NAME') }}" cos_bucket_name: "{{ lookup('env', 'COS_BUCKET_NAME') }}" ibmcloud_resourcegroup: "{{ lookup('env', 'IBMCLOUD_RESOURCEGROUP') }}" +# Only used by Manage (Upgrade type) +mas_appws_upgrade_type: "{{ lookup('env', 'MAS_APPWS_UPGRADE_TYPE') | default('regularUpgrade', true) }}" + # 4. Cloud Pak for Data integration (Predict, HP Utils) # ----------------------------------------------------------------------------- diff --git a/ibm/mas_devops/roles/suite_app_config/vars/defaultspecs/manage.yml b/ibm/mas_devops/roles/suite_app_config/vars/defaultspecs/manage.yml index 40c8d76d03..bd34942bd9 100644 --- a/ibm/mas_devops/roles/suite_app_config/vars/defaultspecs/manage.yml +++ b/ibm/mas_devops/roles/suite_app_config/vars/defaultspecs/manage.yml @@ -23,4 +23,6 @@ mas_appws_spec: tableSpace: "{{ mas_app_settings_tablespace }}" indexSpace: "{{ mas_app_settings_indexspace }}" bypassUpgradeVersionCheck: false + upgrade: + upgradeType: "{{ mas_appws_upgrade_type }}" customizationList: "{{ mas_app_settings_customization_list if (mas_app_settings_customization_archive_url is defined and mas_app_settings_customization_archive_url | length > 0) else [] }}" diff --git a/ibm/mas_devops/roles/suite_app_install/README.md b/ibm/mas_devops/roles/suite_app_install/README.md index 15ec9f7712..04b90207bf 100644 --- a/ibm/mas_devops/roles/suite_app_install/README.md +++ b/ibm/mas_devops/roles/suite_app_install/README.md @@ -208,6 +208,12 @@ The content of the configuration file should be the yaml block that you wish to For full documentation of the supported options refer to the [Customizing Pod Templates](https://www.ibm.com/docs/en/mas-cd/continuous-delivery?topic=configuring-customizing-workloads) in the product documentation. +### mas_appws_upgrade_type +Provide the upgrade type to be used by Manage Workspace. The value of the environment variable should be either `regularUpgrade` or `onlineUpgrade`. + +- Optional +- Environment Variable: `MAS_APPWS_UPGRADE_TYPE` +- Default: `regularUpgrade Role Variables - Monitor Configuration ------------------------------------------------------------------------------- diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 3e83f6e4c9..5d644a45ca 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -96,6 +96,65 @@ until: - app_ws_cr_lookup.resources is defined - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length + when: + - mas_app_id != "manage" + register: app_ws_cr_lookup + +- name: 'Store ManageWorkspace for upgradeType check (Manage only)' + kubernetes.core.k8s_info: + api_version: "{{ app_info[mas_app_id].api_version }}" + kind: "{{ app_info[mas_app_id].ws_kind }}" + namespace: "{{ mas_app_namespace }}" + label_selectors: + - mas.ibm.com/instanceId={{ mas_instance_id }} + - mas.ibm.com/applicationId={{ mas_app_id }} + when: + - mas_app_id == "manage" + register: manage_ws + +- name: "Lookup upgradeType (Manage only)" + set_fact: + manage_upgrade_type: "{{ manage_ws.resources | json_query('[*].spec.settings.db.upgrade.upgradeType') }}" + when: mas_app_id == "manage" + +- name: "Debug upgradeType (Manage only)" + debug: + msg: "Upgrade Type: {{ manage_upgrade_type }}" + +- name: 'Check that all workspace CRs are healthy (regular upgrade check) (Manage only)' + kubernetes.core.k8s_info: + api_version: "{{ app_info[mas_app_id].api_version }}" + kind: "{{ app_info[mas_app_id].ws_kind }}" + namespace: "{{ mas_app_namespace }}" + label_selectors: + - mas.ibm.com/instanceId={{ mas_instance_id }} + - mas.ibm.com/applicationId={{ mas_app_id }} + retries: 20 # about 40 minutes + delay: 120 # 2 minutes + until: + - app_ws_cr_lookup.resources is defined + - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length + when: + - mas_app_id == "manage" + - '"onlineUpgrade" not in manage_upgrade_type' + register: app_ws_cr_lookup + +- name: 'Check that all workspace CRs are healthy (online upgrade check) (Manage only)' + kubernetes.core.k8s_info: + api_version: "{{ app_info[mas_app_id].api_version }}" + kind: "{{ app_info[mas_app_id].ws_kind }}" + namespace: "{{ mas_app_namespace }}" + label_selectors: + - mas.ibm.com/instanceId={{ mas_instance_id }} + - mas.ibm.com/applicationId={{ mas_app_id }} + retries: 20 # about 40 minutes + delay: 120 # 2 minutes + until: + - app_ws_cr_lookup.resources is defined + - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`DeploymentReady`][].message') | regex_search('Database online upgrade portion is done, waiting for offline request', multiline=True) + when: + - mas_app_id == "manage" + - '"onlineUpgrade" in manage_upgrade_type' register: app_ws_cr_lookup - name: "{{ mas_app_id }} : Debug Workspaces" From dad1fa69afbf0f3993897f13ade2fadd491bc3bc Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 23 Jun 2025 12:43:25 +0530 Subject: [PATCH 02/14] [patch] Update workspace check logic --- .../roles/suite_app_upgrade/tasks/upgrade.yml | 30 +++---------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 5d644a45ca..b66b75e909 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -83,23 +83,6 @@ # 5. Check that the Application Workspaces meet the required state # ----------------------------------------------------------------------------- -- name: 'Check that all workspace CRs are healthy' - kubernetes.core.k8s_info: - api_version: "{{ app_info[mas_app_id].api_version }}" - kind: "{{ app_info[mas_app_id].ws_kind }}" - namespace: "{{ mas_app_namespace }}" - label_selectors: - - mas.ibm.com/instanceId={{ mas_instance_id }} - - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 20 # about 40 minutes - delay: 120 # 2 minutes - until: - - app_ws_cr_lookup.resources is defined - - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length - when: - - mas_app_id != "manage" - register: app_ws_cr_lookup - - name: 'Store ManageWorkspace for upgradeType check (Manage only)' kubernetes.core.k8s_info: api_version: "{{ app_info[mas_app_id].api_version }}" @@ -117,11 +100,7 @@ manage_upgrade_type: "{{ manage_ws.resources | json_query('[*].spec.settings.db.upgrade.upgradeType') }}" when: mas_app_id == "manage" -- name: "Debug upgradeType (Manage only)" - debug: - msg: "Upgrade Type: {{ manage_upgrade_type }}" - -- name: 'Check that all workspace CRs are healthy (regular upgrade check) (Manage only)' +- name: 'Check that all workspace CRs are healthy' kubernetes.core.k8s_info: api_version: "{{ app_info[mas_app_id].api_version }}" kind: "{{ app_info[mas_app_id].ws_kind }}" @@ -129,14 +108,13 @@ label_selectors: - mas.ibm.com/instanceId={{ mas_instance_id }} - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 20 # about 40 minutes + retries: 45 # about 90 minutes delay: 120 # 2 minutes until: - app_ws_cr_lookup.resources is defined - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length when: - - mas_app_id == "manage" - - '"onlineUpgrade" not in manage_upgrade_type' + - 'manage_upgrade_type is not defined or "onlineUpgrade" not in manage_upgrade_type' register: app_ws_cr_lookup - name: 'Check that all workspace CRs are healthy (online upgrade check) (Manage only)' @@ -147,7 +125,7 @@ label_selectors: - mas.ibm.com/instanceId={{ mas_instance_id }} - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 20 # about 40 minutes + retries: 45 # about 90 minutes delay: 120 # 2 minutes until: - app_ws_cr_lookup.resources is defined From 51df9ab7911b67a4d008577a07dc9ca4d9fb76fe Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Thu, 26 Jun 2025 12:14:05 +0530 Subject: [PATCH 03/14] [patch] Update upgrade.yml --- .../roles/suite_app_upgrade/tasks/upgrade.yml | 35 ------------------- 1 file changed, 35 deletions(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index b66b75e909..5e8613f11f 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -83,23 +83,6 @@ # 5. Check that the Application Workspaces meet the required state # ----------------------------------------------------------------------------- -- name: 'Store ManageWorkspace for upgradeType check (Manage only)' - kubernetes.core.k8s_info: - api_version: "{{ app_info[mas_app_id].api_version }}" - kind: "{{ app_info[mas_app_id].ws_kind }}" - namespace: "{{ mas_app_namespace }}" - label_selectors: - - mas.ibm.com/instanceId={{ mas_instance_id }} - - mas.ibm.com/applicationId={{ mas_app_id }} - when: - - mas_app_id == "manage" - register: manage_ws - -- name: "Lookup upgradeType (Manage only)" - set_fact: - manage_upgrade_type: "{{ manage_ws.resources | json_query('[*].spec.settings.db.upgrade.upgradeType') }}" - when: mas_app_id == "manage" - - name: 'Check that all workspace CRs are healthy' kubernetes.core.k8s_info: api_version: "{{ app_info[mas_app_id].api_version }}" @@ -117,24 +100,6 @@ - 'manage_upgrade_type is not defined or "onlineUpgrade" not in manage_upgrade_type' register: app_ws_cr_lookup -- name: 'Check that all workspace CRs are healthy (online upgrade check) (Manage only)' - kubernetes.core.k8s_info: - api_version: "{{ app_info[mas_app_id].api_version }}" - kind: "{{ app_info[mas_app_id].ws_kind }}" - namespace: "{{ mas_app_namespace }}" - label_selectors: - - mas.ibm.com/instanceId={{ mas_instance_id }} - - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 45 # about 90 minutes - delay: 120 # 2 minutes - until: - - app_ws_cr_lookup.resources is defined - - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`DeploymentReady`][].message') | regex_search('Database online upgrade portion is done, waiting for offline request', multiline=True) - when: - - mas_app_id == "manage" - - '"onlineUpgrade" in manage_upgrade_type' - register: app_ws_cr_lookup - - name: "{{ mas_app_id }} : Debug Workspaces" when: app_sub_info.resources[0].spec.channel != mas_app_upgrade_target_channel debug: From ea0f231e338613873e27ed251a8b5718d80a592f Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Thu, 26 Jun 2025 12:14:31 +0530 Subject: [PATCH 04/14] [patch] Update upgrade.yml --- ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 5e8613f11f..e0d0e44096 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -96,8 +96,6 @@ until: - app_ws_cr_lookup.resources is defined - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length - when: - - 'manage_upgrade_type is not defined or "onlineUpgrade" not in manage_upgrade_type' register: app_ws_cr_lookup - name: "{{ mas_app_id }} : Debug Workspaces" From c3aad3531b4fbc31c15c633f35a25ba200abae4d Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Thu, 26 Jun 2025 14:58:49 +0530 Subject: [PATCH 05/14] [patch] Update timeout --- .../roles/suite_app_upgrade/tasks/check_app_compatibility.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml index 3bb71bd1c9..784731dd7c 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml @@ -169,7 +169,7 @@ label_selectors: - mas.ibm.com/instanceId={{ mas_instance_id }} - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 20 # about 40 minutes + retries: 45 # about 90 minutes delay: 120 # 2 minutes until: - app_ws_cr_lookup.resources is defined From b06a547464ca080cb075828a4aa61628d39d431c Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 30 Jun 2025 17:25:33 +0530 Subject: [PATCH 06/14] [patch] Add workspace version check --- .../roles/suite_app_upgrade/tasks/upgrade.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index e0d0e44096..57800e92ad 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -83,6 +83,23 @@ # 5. Check that the Application Workspaces meet the required state # ----------------------------------------------------------------------------- +- name: 'Check if workspace CR reconciled version is updated to target version (manage only)' + kubernetes.core.k8s_info: + api_version: "{{ app_info[mas_app_id].api_version }}" + kind: "{{ app_info[mas_app_id].ws_kind }}" + namespace: "{{ mas_app_namespace }}" + label_selectors: + - mas.ibm.com/instanceId={{ mas_instance_id }} + - mas.ibm.com/applicationId={{ mas_app_id }} + retries: 45 # about 90 minutes + delay: 120 # 2 minutes + until: + - app_ws_cr_version.resources is defined + - app_ws_cr_version.resources[0].status.versions.reconciled == updated_opcon_version + when: + - mas_app_id == "manage" + register: app_ws_cr_version + - name: 'Check that all workspace CRs are healthy' kubernetes.core.k8s_info: api_version: "{{ app_info[mas_app_id].api_version }}" From 3ee5b547ebb8788d63991c36d0aa5b3403461b48 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Thu, 3 Jul 2025 14:17:20 +0530 Subject: [PATCH 07/14] [patch] Add additional workspace check condition in upgrade --- ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 57800e92ad..e6180aed4f 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -113,6 +113,7 @@ until: - app_ws_cr_lookup.resources is defined - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length + - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Running`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length register: app_ws_cr_lookup - name: "{{ mas_app_id }} : Debug Workspaces" From 18922ed9b5cbb438c9ad98bf26b6d6fa45b2f81a Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Fri, 4 Jul 2025 15:44:55 +0530 Subject: [PATCH 08/14] [patch] Add 1 more workspace ready condition --- ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index e6180aed4f..9660cb917e 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -114,6 +114,7 @@ - app_ws_cr_lookup.resources is defined - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Running`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length + - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`DeploymentCR`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length register: app_ws_cr_lookup - name: "{{ mas_app_id }} : Debug Workspaces" From 6732480886481ce75a80d6439010eb3752a81bd4 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Sun, 6 Jul 2025 21:51:35 +0530 Subject: [PATCH 09/14] [patch] Increase workspace ready wait time --- ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 9660cb917e..4a6493ed0f 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -91,7 +91,7 @@ label_selectors: - mas.ibm.com/instanceId={{ mas_instance_id }} - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 45 # about 90 minutes + retries: 30 # about 60 minutes delay: 120 # 2 minutes until: - app_ws_cr_version.resources is defined @@ -108,7 +108,7 @@ label_selectors: - mas.ibm.com/instanceId={{ mas_instance_id }} - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 45 # about 90 minutes + retries: 60 # about 120 minutes delay: 120 # 2 minutes until: - app_ws_cr_lookup.resources is defined From b635bb36133ff08749160bd3b88f5cd7c58d6450 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 7 Jul 2025 12:32:42 +0530 Subject: [PATCH 10/14] [patch] Update logic for upgrade check --- .../tasks/check_app_compatibility.yml | 2 +- .../roles/suite_app_upgrade/tasks/upgrade.yml | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml index 784731dd7c..3bb71bd1c9 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/check_app_compatibility.yml @@ -169,7 +169,7 @@ label_selectors: - mas.ibm.com/instanceId={{ mas_instance_id }} - mas.ibm.com/applicationId={{ mas_app_id }} - retries: 45 # about 90 minutes + retries: 20 # about 40 minutes delay: 120 # 2 minutes until: - app_ws_cr_lookup.resources is defined diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 4a6493ed0f..3dc22f26bc 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -100,7 +100,7 @@ - mas_app_id == "manage" register: app_ws_cr_version -- name: 'Check that all workspace CRs are healthy' +- name: 'Check that all workspace CRs are healthy (manage only)' kubernetes.core.k8s_info: api_version: "{{ app_info[mas_app_id].api_version }}" kind: "{{ app_info[mas_app_id].ws_kind }}" @@ -117,6 +117,21 @@ - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`DeploymentCR`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length register: app_ws_cr_lookup +- name: 'Check that all workspace CRs are healthy' + kubernetes.core.k8s_info: + api_version: "{{ app_info[mas_app_id].api_version }}" + kind: "{{ app_info[mas_app_id].ws_kind }}" + namespace: "{{ mas_app_namespace }}" + label_selectors: + - mas.ibm.com/instanceId={{ mas_instance_id }} + - mas.ibm.com/applicationId={{ mas_app_id }} + retries: 20 # about 40 minutes + delay: 120 # 2 minutes + until: + - app_ws_cr_lookup.resources is defined + - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length + register: app_ws_cr_lookup + - name: "{{ mas_app_id }} : Debug Workspaces" when: app_sub_info.resources[0].spec.channel != mas_app_upgrade_target_channel debug: From d3d7cfd44f303dba03e8fd93aacd54264b5f66e8 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 7 Jul 2025 21:44:29 +0530 Subject: [PATCH 11/14] [patch] Adds missing condition --- .../roles/suite_app_upgrade/tasks/upgrade.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 3dc22f26bc..5441ac47c2 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -111,11 +111,13 @@ retries: 60 # about 120 minutes delay: 120 # 2 minutes until: - - app_ws_cr_lookup.resources is defined - - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length - - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Running`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length - - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`DeploymentCR`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length - register: app_ws_cr_lookup + - manage_ws_cr_lookup.resources is defined + - manage_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length + - manage_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Running`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length + - manage_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`DeploymentCR`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length + when: + - mas_app_id == "manage" + register: manage_ws_cr_lookup - name: 'Check that all workspace CRs are healthy' kubernetes.core.k8s_info: From 96a7a4f2fe058b2847ec36b67d502abea0704392 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 7 Jul 2025 21:46:38 +0530 Subject: [PATCH 12/14] [patch] Adds missing condition --- ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml index 5441ac47c2..933fa9f385 100644 --- a/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml +++ b/ibm/mas_devops/roles/suite_app_upgrade/tasks/upgrade.yml @@ -112,7 +112,7 @@ delay: 120 # 2 minutes until: - manage_ws_cr_lookup.resources is defined - - manage_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length + - manage_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready']) | list | length == app_ws_cr_lookup.resources | length - manage_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Running`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length - manage_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`DeploymentCR`][].reason') | select ('in', ['Successful']) | list | length == app_ws_cr_lookup.resources | length when: @@ -132,6 +132,8 @@ until: - app_ws_cr_lookup.resources is defined - app_ws_cr_lookup.resources | json_query('[*].status.conditions[?type==`Ready`][].reason') | select ('in', ['Ready', 'WorkspaceReady']) | list | length == app_ws_cr_lookup.resources | length + when: + - mas_app_id != "manage" register: app_ws_cr_lookup - name: "{{ mas_app_id }} : Debug Workspaces" From 8182ec19b786ffc5f60c062983642917a87972fb Mon Sep 17 00:00:00 2001 From: Andrew Whitfield Date: Mon, 14 Jul 2025 10:50:19 +0100 Subject: [PATCH 13/14] Update README.md --- ibm/mas_devops/roles/suite_app_install/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm/mas_devops/roles/suite_app_install/README.md b/ibm/mas_devops/roles/suite_app_install/README.md index 04b90207bf..7554fb7174 100644 --- a/ibm/mas_devops/roles/suite_app_install/README.md +++ b/ibm/mas_devops/roles/suite_app_install/README.md @@ -213,7 +213,7 @@ Provide the upgrade type to be used by Manage Workspace. The value of the enviro - Optional - Environment Variable: `MAS_APPWS_UPGRADE_TYPE` -- Default: `regularUpgrade +- Default: `regularUpgrade` Role Variables - Monitor Configuration ------------------------------------------------------------------------------- From 05d7082ce1dcc3ff349439c86614cb63b591866d Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 14 Jul 2025 15:38:21 +0530 Subject: [PATCH 14/14] [patch] Update readme with documentation link --- ibm/mas_devops/roles/suite_app_install/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ibm/mas_devops/roles/suite_app_install/README.md b/ibm/mas_devops/roles/suite_app_install/README.md index 7554fb7174..f3bce63bf8 100644 --- a/ibm/mas_devops/roles/suite_app_install/README.md +++ b/ibm/mas_devops/roles/suite_app_install/README.md @@ -215,6 +215,8 @@ Provide the upgrade type to be used by Manage Workspace. The value of the enviro - Environment Variable: `MAS_APPWS_UPGRADE_TYPE` - Default: `regularUpgrade` +For full documentation of the upgrade types refer to the [Manage Upgrade information](https://www.ibm.com/docs/en/masv-and-l/cd?topic=database-reducing-system-downtime) in the product documentation. + Role Variables - Monitor Configuration ------------------------------------------------------------------------------- ### mas_app_settings_monitor_deployment_size