diff --git a/src/mas/devops/data/catalogs/v9-260430-amd64.yaml b/src/mas/devops/data/catalogs/v9-260430-amd64.yaml new file mode 100644 index 00000000..f83be1a8 --- /dev/null +++ b/src/mas/devops/data/catalogs/v9-260430-amd64.yaml @@ -0,0 +1,181 @@ +--- +# Case bundle configuration for IBM Maximo Operator Catalog 260430 (AMD64) +# ----------------------------------------------------------------------------- +# In the future this won't be necessary as we'll be able to mirror from the +# catalog itself, but not everything in the catalog supports this yet (including MAS) +# so we need to use the CASE bundle mirror process still. + +catalog_digest: sha256:739d2008a222a5ccb7385ce2e0dece11056bb3c6e8a611116bc291c58d7f2bf7 + +ocp_compatibility: +- "4.16" +- "4.17" +- "4.18" +- "4.19" +- "4.20" +- "4.21" + +# Dependencies +# ----------------------------------------------------------------------------- +ibm_licensing_version: 4.2.17 # Operator version 4.2.14 (https://github.com/IBM/cloud-pak/tree/master/repo/case/ibm-licensing) +common_svcs_version: 4.13.0 # Operator version 4.13.0 (https://github.com/IBM/cloud-pak/tree/master/repo/case/ibm-cp-common-services) +common_svcs_version_1: 4.11.0 # Additional version 4.11.0 + +cp4d_platform_version: 5.2.0+20250709.170324 # Operator version 5.2.0 (https://github.com/IBM/cloud-pak/tree/master/repo/case/ibm-cp-datacore/) +ibm_zen_version: 6.2.0+20250530.152516.232 # For CPD5 ibm-zen has to be explicitily mirrored + +db2u_version: 7.5.1+20251217.121408.18568 # Operator version 110509.0.6 to find the version 7.5.1+20251217.121408.18568, search db2u-operator digest on repo (https://github.com/IBM/cloud-pak/tree/master/repo/case/ibm-db2uoperator) +db2_channel_default: v110509.0 # Default Channel version for db2u-operator +events_version: 5.0.1 # Operator version 5.0.1 (https://github.com/IBM/cloud-pak/tree/master/repo/case/ibm-events-operator) +uds_version: 2.0.12 # Operator version 2.0.12 # sticking to 2.0.12 version # Please do Not Change +sls_version: 3.12.7 # Updated # Operator version 3.12.5 (https://github.ibm.com/maximoappsuite/ibm-sls/releases) +tsm_version: 1.7.6 # Updated # Operator version 1.7.4 (https://github.ibm.com/maximoappsuite/ibm-truststore-mgr/releases) +dd_version: 1.1.23 # Updated # Operator version 1.1.23 (https://github.ibm.com/maximoappsuite/ibm-data-dictionary/releases) +appconnect_version: 6.2.0 # Operator version 6.2.0 # sticking to 6.2.0 version # Please do Not Change +wsl_version: 11.0.0+20250521.202913.73 # used for wsl and wsl_runtimes unless wsl_runtimes_version also specified +wsl_runtimes_version: 11.0.0+20250515.090949.21 # cpd 5.1.3 uses version 10.3.0 of wsl runtimes but only 10.2.0 for wsl itself +wml_version: 11.0.0+20250530.193146.282 # Operator version 5.2.0 +postgress_version: 5.16.0+20250827.110911.2626 # ibm-cpd-cloud-native-postgresql-operator 5.2.0 cp4d + +ccs_build: 11.0.0+20250605.130237.468 # cpd 5.2.0 using ccs build +# datarefinery_build: +20240517.202103.146 + +spark_version: 11.0.0+20250604.163055.2097 # Operator version 5.2.0 +cognos_version: 28.0.0+20250515.175459.10054 # Operator version 25.0.0 +couchdb_version: 1.0.13 # Operator version 2.2.1 (1.0.13) sticking with 1.0.13 # (This is required for Assist 9.0, https://github.com/IBM/cloud-pak/blob/master/repo/case/ibm-couchdb/index.yaml) +elasticsearch_version: 1.1.2667 # Operator version 1.1.2667 # used in cpd 5.1.3 only +opensearch_version: 1.1.2494 # Operator version 1.1.2494 + +# Maximo Application Suite +# ----------------------------------------------------------------------------- +mas_core_version: + 9.2.x-feature: 9.2.0-pre.stable_16717 # Updated + 9.1.x: 9.1.15 # Updated + 9.0.x: 9.0.23 # Updated + 8.10.x: 8.10.36 # Updated + 8.11.x: 8.11.33 # Updated +mas_assist_version: + 9.1.x: 9.1.9 # Updated + 9.0.x: 9.0.15 # Updated + 8.10.x: 8.7.8 # No Update + 8.11.x: 8.8.7 # No Update +mas_hputilities_version: + 9.1.x: "" # Not Supported + 9.0.x: "" # Not Supported + 8.10.x: 8.6.7 # No Update + 8.11.x: "" # Not Supported +mas_iot_version: + 9.1.x: 9.1.9 # Updated + 9.0.x: 9.0.18 # Updated + 8.10.x: 8.7.32 # Updated + 8.11.x: 8.8.29 # Updated +mas_manage_version: + 9.2.x-feature: 9.2.0-pre.stable_17064 # Updated + 9.1.x: 9.1.16 # Updated + 9.0.x: 9.0.24 # Updated + 8.10.x: 8.6.37 # Updated + 8.11.x: 8.7.31 # Updated +mas_monitor_version: + 9.1.x: 9.1.9 # Updated + 9.0.x: 9.0.19 # Updated + 8.10.x: 8.10.29 # Updated + 8.11.x: 8.11.27 # Updated +mas_optimizer_version: + 9.2.x-feature: 9.2.0-pre.stable_16613 # Updated + 9.1.x: 9.1.10 # Updated + 9.0.x: 9.0.21 # Updated + 8.10.x: 8.4.27 # Updated + 8.11.x: 8.5.27 # Updated +mas_predict_version: + 9.1.x: 9.1.6 # Updated + 9.0.x: 9.0.13 # Updated + 8.10.x: 8.8.14 # Updated + 8.11.x: 8.9.16 # Updated +mas_visualinspection_version: + 9.2.x-feature: 9.2.0-pre.stable_12598 # No Update + 9.1.x: 9.1.11 # Updated + 9.0.x: 9.0.18 # Updated + 8.10.x: 8.8.4 # No Update + 8.11.x: 8.9.20 # No Update +mas_facilities_version: + 9.2.x-feature: 9.2.0-pre.stable_16853 # Updated + 9.1.x: 9.1.9 # Updated + 9.0.x: "" # Not Supported + 8.10.x: "" # Not Supported + 8.11.x: "" # Not Supported + + +# Maximo AI Service +# ------------------------------------------------------------------------------ +aiservice_version: + 9.2.x-feature: 9.2.0-pre.stable_16576 # Updated + 9.1.x: 9.1.13 # Updated + + +# Extra Images for UDS +# ------------------------------------------------------------------------------ +uds_extras_version: 1.5.0 + +# Extra Images for Mongo +# ------------------------------------------------------------------------------ +mongo_extras_version_default: 8.0.17 + +# Variables used to mirror additional mongo image versions +mongo_extras_version_4: 4.4.21 +mongo_extras_version_5: 5.0.23 +mongo_extras_version_6: 6.0.12 +mongo_extras_version_7: 7.0.23 +mongo_extras_version_8: 8.0.17 + +# Extra Images for Db2u +# ------------------------------------------------------------------------------ +db2u_extras_version: 1.0.6 # No Update +db2u_filter: db2 + +# Extra Images for CCS used for PCD 5.2.0 Hotfix +# ------------------------------------------------------------------------------ +ccs_extras_version: 11.0.0 + +# Extra Images for IBM Watson Discovery +# ------------------------------------------------------------------------------ +#wd_extras_version: 1.0.4 + +# Extra Images for Amlen +# ------------------------------------------------------------------------------ +amlen_extras_version: 1.1.4 + +# Extra Images for Redis (Collaborate) +# ------------------------------------------------------------------------------ +redis_extras_version: 2.1.40 + +# Default Cloud Pak for Data version +# ------------------------------------------------------------------------------ +cpd_product_version_default: 5.2.0 + +manage_extras_913: 9.1.3 +minio_version: RELEASE.2025-06-13T11-33-47Z + +editorial: + whats_new: + - title: '**Security updates and bug fixes**' + details: + - IBM Maximo Application Suite Core Platform [v8.10.36](https://www.ibm.com/support/pages/node/7267462), [v8.11.36](https://www.ibm.com/support/pages/node/7267463), [v9.0.23](https://www.ibm.com/support/pages/node/7267464) and [v9.1.14](https://www.ibm.com/support/pages/node/7267465) + - IBM Maximo Manage [v8.6.37](https://www.ibm.com/support/pages/node/7266693), [v8.7.31](https://www.ibm.com/support/pages/node/7266692), [v9.0.24](https://www.ibm.com/support/pages/node/7266691) and [v9.1.15](https://www.ibm.com/support/pages/node/7266690) + - IBM Maximo IoT [v8.7.32](https://www.ibm.com/support/pages/node/7267121), [v8.8.29](https://www.ibm.com/support/pages/node/7267122), [v9.0.18](https://www.ibm.com/support/pages/node/7267123) and [v9.1.9](https://www.ibm.com/support/pages/node/7267124) + - IBM Maximo Monitor [v8.10.29](https://www.ibm.com/support/pages/node/7267303), [v8.11.27](https://www.ibm.com/support/pages/node/7267304), [v9.0.19](https://www.ibm.com/support/pages/node/7267305) and [v9.1.9](https://www.ibm.com/support/pages/node/7267306) + - IBM Maximo Optimizer [v8.4.27](https://www.ibm.com/support/pages/node/7266732),[v8.5.26](https://www.ibm.com/support/pages/node/7266734), [v9.0.21](https://www.ibm.com/support/pages/node/7266738) and [v9.1.10](https://www.ibm.com/support/pages/node/7266745) + - IBM Maximo Assist/Collaborate [v9.0.15](https://www.ibm.com/support/pages/node/7267220), [v9.1.9](https://www.ibm.com/support/pages/node/7267222) + - IBM Maximo Predict [v8.8.14](https://www.ibm.com/support/pages/node/7267302), [v8.9.16](https://www.ibm.com/support/pages/node/7267299), [v9.0.13](https://www.ibm.com/support/pages/node/7267298) and [v9.1.6](https://www.ibm.com/support/pages/node/7267181) + - IBM Maximo Visual Inspection [v9.0.18](https://www.ibm.com/support/pages/node/7267485) + - IBM Maximo Real Estate and Facilities [v9.1.9](https://www.ibm.com/support/pages/node/7267132) + - IBM Maximo AI Service [v9.1.13](https://www.ibm.com/support/pages/node/7266231) + - IBM Data Dictionary v1.1 + - IBM Truststore Manager v1.7 + - IBM Suite License Service v3.12 + + known_issues: + - title: Customers using **Maximo Assist v8.7 or v8.8** should not update and must instead contact IBM Support for guidance regarding the removal of IBM Watson Discovery and upgrading to Maximo Assist v9.0 + - title: A known issue exists in the January 29, 2026 release affecting HSE and Oil & Gas (9.0.23 / 9.1.64). Customers with HSE installed should avoid upgrading to the January release. Installation of HSE or Oil & Gas on Manage 9.0.x / 9.1.x should be deferred until the February 2026 patch. + - title: A known issue has been identified in Db2u warehouse operator in this catalog. Customers restoring/upgrading Db2, intermittently get db2 `SQL0290N Table space access is not allowed. SQLSTATE=55039` error causing connectivity issue between MAS and Db2. If you are facing this problem, please refer to the workaround provided in this [documentation](https://www.ibm.com/docs/en/cloud-paks/cp-data/5.3.x?topic=SSQNUZ_5.3.x/svc-db2/known-issues-dbs.htm#known-issues-dbs__db2-instance-fails-sql0290n__title__1). + - title: A known issue exists in the February 26, 2026 release affecting IBM Maximo Real Estate and Facilities. Customers with MREF installed should avoid upgrading to the February 9.1.8 release. Installation of MREF 9.1.x should be deferred until the March 2026 patch. + - title: A know issue in IBM Maximo Real Estate and Facilities, users may encounter failures during upgrade scenarios (9.1.x → 9.2 FC) and experience slow installation in airgap environments in the March 26, 2026 release. \ No newline at end of file diff --git a/src/mas/devops/data/catalogs/v9-260430-ppc64le.yaml b/src/mas/devops/data/catalogs/v9-260430-ppc64le.yaml new file mode 100644 index 00000000..41eef4a2 --- /dev/null +++ b/src/mas/devops/data/catalogs/v9-260430-ppc64le.yaml @@ -0,0 +1,62 @@ +--- +# Case bundle configuration for IBM Maximo Operator Catalog 260430 (PPC) +# ----------------------------------------------------------------------------- +# In the future this won't be necessary as we'll be able to mirror from the +# catalog itself, but not everything in the catalog supports this yet (including MAS) +# so we need to use the CASE bundle mirror process still. + +catalog_digest: sha256:5b407a88933005eaaa86d04e2d23f5cf040b8ae114f9e6cb79a9f4c8a6025322 + +ocp_compatibility: +- "4.16" +- "4.17" +- "4.18" +- "4.19" +- "4.20" +- "4.21" + +uds_version: 2.0.12 # Operator version 2.0.12 # sticking to 2.0.12 version # Please do Not Change +sls_version: 3.12.7 # Updated # Operator version 3.12.5 (https://github.ibm.com/maximoappsuite/ibm-sls/releases) +tsm_version: 1.7.6 # Updated # Operator version 1.7.4 (https://github.ibm.com/maximoappsuite/ibm-truststore-mgr/releases) +db2u_version: 7.5.1+20251217.121408.18568 # Operator version 110509.0.6 to find the version 7.5.1+20251217.121408.18568, search db2u-operator digest on repo (https://github.com/IBM/cloud-pak/tree/master/repo/case/ibm-db2uoperator) + +# Maximo Application Suite +# ----------------------------------------------------------------------------- +mas_core_version: + 9.2.x-feature: 9.2.0-pre.stable_16717 # Updated + 9.1.x: 9.1.15 # Updated + 9.0.x: 9.0.23 # Updated + 8.10.x: "" # Not Supported + 8.11.x: "" # Not Supported +mas_manage_version: + 9.2.x-feature: 9.2.0-pre.stable_17064 # Updated + 9.1.x: 9.1.16 # Updated + 9.0.x: 9.0.24 # Updated + 8.10.x: "" # Not Supported + 8.11.x: "" # Not Supported + +# Extra Images for UDS +# ------------------------------------------------------------------------------ +uds_extras_version: 1.5.0 + +# Extra Images for Mongo +# ------------------------------------------------------------------------------ +mongo_extras_version_default: 8.0.17 + +# Variables used to mirror additional mongo image versions +mongo_extras_version_4: 4.4.21 +mongo_extras_version_5: 5.0.23 +mongo_extras_version_6: 6.0.12 +mongo_extras_version_7: 7.0.12 +mongo_extras_version_8: 8.0.17 + +editorial: + whats_new: + - title: '**Security updates and bug fixes**' + details: + - IBM Maximo Application Suite Core Platform [v9.0.23](https://www.ibm.com/support/pages/node/7267464) and [v9.1.14](https://www.ibm.com/support/pages/node/7267465) + - IBM Maximo Manage [v9.0.24](https://www.ibm.com/support/pages/node/7266691) and [v9.1.15](https://www.ibm.com/support/pages/node/7266690) + - IBM Truststore Manager v1.7 + - IBM Suite License Service v3.12 + known_issues: + - title: A known issue exists in the January 29, 2026 release affecting HSE and Oil & Gas (9.0.23 / 9.1.64). Customers with HSE installed should avoid upgrading to the January release. Installation of HSE or Oil & Gas on Manage 9.0.x / 9.1.x should be deferred until the February 2026 patch. \ No newline at end of file diff --git a/src/mas/devops/data/catalogs/v9-260430-s390x.yaml b/src/mas/devops/data/catalogs/v9-260430-s390x.yaml new file mode 100644 index 00000000..ecc3fe69 --- /dev/null +++ b/src/mas/devops/data/catalogs/v9-260430-s390x.yaml @@ -0,0 +1,62 @@ +--- +# Case bundle configuration for IBM Maximo Operator Catalog 260430 (Z) +# ----------------------------------------------------------------------------- +# In the future this won't be necessary as we'll be able to mirror from the +# catalog itself, but not everything in the catalog supports this yet (including MAS) +# so we need to use the CASE bundle mirror process still. + +catalog_digest: sha256:27cb0d94d717c88e7016211b833a9c53e8bb012d8fd009a8047616372b69719c + +ocp_compatibility: +- "4.16" +- "4.17" +- "4.18" +- "4.19" +- "4.20" +- "4.21" + +uds_version: 2.0.12 # Operator version 2.0.12 # sticking to 2.0.12 version # Please do Not Change +sls_version: 3.12.7 # Updated # Operator version 3.12.5 (https://github.ibm.com/maximoappsuite/ibm-sls/releases) +tsm_version: 1.7.6 # Updated # Operator version 1.7.4 (https://github.ibm.com/maximoappsuite/ibm-truststore-mgr/releases) +db2u_version: 7.5.1+20251217.121408.18568 # Operator version 110509.0.6 to find the version 7.5.1+20251217.121408.18568, search db2u-operator digest on repo (https://github.com/IBM/cloud-pak/tree/master/repo/case/ibm-db2uoperator) + +# Maximo Application Suite +# ----------------------------------------------------------------------------- +mas_core_version: + 9.2.x-feature: 9.2.0-pre.stable_16717 # Updated + 9.1.x: 9.1.15 # Updated + 9.0.x: 9.0.23 # Updated + 8.10.x: "" # Not Supported + 8.11.x: "" # Not Supported +mas_manage_version: + 9.2.x-feature: 9.2.0-pre.stable_17064 # Updated + 9.1.x: 9.1.16 # Updated + 9.0.x: 9.0.24 # Updated + 8.10.x: "" # Not Supported + 8.11.x: "" # Not Supported + +# Extra Images for UDS +# ------------------------------------------------------------------------------ +uds_extras_version: 1.5.0 + +# Extra Images for Mongo +# ------------------------------------------------------------------------------ +mongo_extras_version_default: 8.0.17 + +# Variables used to mirror additional mongo image versions +mongo_extras_version_4: 4.4.21 +mongo_extras_version_5: 5.0.23 +mongo_extras_version_6: 6.0.12 +mongo_extras_version_7: 7.0.12 +mongo_extras_version_8: 8.0.17 + +editorial: + whats_new: + - title: '**Security updates and bug fixes**' + details: + - IBM Maximo Application Suite Core Platform [v9.0.23](https://www.ibm.com/support/pages/node/7267464) and [v9.1.14](https://www.ibm.com/support/pages/node/7267465) + - IBM Maximo Manage [v9.0.24](https://www.ibm.com/support/pages/node/7266691) and [v9.1.15](https://www.ibm.com/support/pages/node/7266690) + - IBM Truststore Manager v1.7 + - IBM Suite License Service v3.12 + known_issues: + - title: A known issue exists in the January 29, 2026 release affecting HSE and Oil & Gas (9.0.23 / 9.1.64). Customers with HSE installed should avoid upgrading to the January release. Installation of HSE or Oil & Gas on Manage 9.0.x / 9.1.x should be deferred until the February 2026 patch. \ No newline at end of file diff --git a/src/mas/devops/tekton.py b/src/mas/devops/tekton.py index 96054c99..48bb50fb 100644 --- a/src/mas/devops/tekton.py +++ b/src/mas/devops/tekton.py @@ -22,7 +22,7 @@ from jinja2 import Environment, FileSystemLoader -from .ocp import getConsoleURL, waitForCRD, waitForDeployment, crdExists, waitForPVC, getStorageClasses, getStorageClassVolumeBindingMode +from .ocp import getConsoleURL, waitForCRD, waitForDeployment, crdExists, waitForPVC, getStorageClasses, getStorageClassVolumeBindingMode, getClusterVersion logger = logging.getLogger(__name__) @@ -159,6 +159,93 @@ def installOpenShiftPipelines(dynClient: DynamicClient, customStorageClassName: return False +def enablePipelinesConsolePlugin(dynClient: DynamicClient) -> bool: + """ + Enable the OpenShift Pipelines console plugin for OCP 4.21+. + + In OpenShift 4.21 and later, the Pipelines console plugin must be manually + enabled by patching the Console operator configuration. This function: + 1. Detects the OCP version + 2. Checks if version >= 4.21 + 3. Enables the plugin if not already enabled + + Parameters: + dynClient (DynamicClient): OpenShift Dynamic Client + + Returns: + bool: True if plugin is enabled or already enabled, False on error + """ + try: + # Get cluster version + clusterVersion = getClusterVersion(dynClient) + if not clusterVersion: + logger.warning("Unable to determine cluster version, skipping plugin enablement") + return True # Non-fatal, return True to continue + + logger.debug(f"Detected OpenShift version: {clusterVersion}") + + # Parse version (e.g., "4.21.0" -> major=4, minor=21) + versionParts = clusterVersion.split('.') + if len(versionParts) < 2: + logger.warning(f"Unable to parse cluster version '{clusterVersion}', skipping plugin enablement") + return True + + try: + majorVersion = int(versionParts[0]) + minorVersion = int(versionParts[1]) + except ValueError: + logger.warning(f"Unable to parse version numbers from '{clusterVersion}', skipping plugin enablement") + return True + + # Check if version requires plugin enablement (4.21+) + requiresPlugin = (majorVersion == 4 and minorVersion >= 21) or (majorVersion > 4) + + if not requiresPlugin: + logger.info(f"OpenShift version {clusterVersion} does not require manual plugin enablement") + return True + + logger.info(f"OpenShift version {clusterVersion} requires Pipelines console plugin to be enabled") + + # Get Console Operator + consoleAPI = dynClient.resources.get(api_version="operator.openshift.io/v1", kind="Console") + console = consoleAPI.get(name="cluster") + + # Check if plugin is already enabled + currentPlugins = console.spec.plugins if hasattr(console.spec, 'plugins') and console.spec.plugins else [] + pluginName = "pipelines-console-plugin" + + if pluginName in currentPlugins: + logger.info("Pipelines console plugin is already enabled") + return True + + # Enable the plugin by patching the Console operator + logger.info("Enabling Pipelines console plugin...") + + # Create patch to add plugin to the list + updatedPlugins = list(currentPlugins) + [pluginName] + patch = { + "spec": { + "plugins": updatedPlugins + } + } + + consoleAPI.patch( + name="cluster", + body=patch, + content_type="application/merge-patch+json" + ) + + logger.info("Successfully enabled Pipelines console plugin") + return True + + except NotFoundError as e: + logger.warning(f"Console operator not found: {e}") + return True # Non-fatal, plugin can be enabled manually + except Exception as e: + logger.error(f"Error enabling Pipelines console plugin: {e}") + return False + + def addMissingStorageClassToTektonPVC(dynClient: DynamicClient, namespace: str, pvcName: str, storageClassName: str = None) -> bool: """ OpenShift Pipelines has a problem when there is no default storage class defined in a cluster, this function diff --git a/test/src/test_data.py b/test/src/test_data.py index 86b192ab..62402b89 100644 --- a/test/src/test_data.py +++ b/test/src/test_data.py @@ -32,7 +32,7 @@ def test_list_catalogs(): def test_get_newest_catalog_tag(): catalogTag = getNewestCatalogTag("amd64") # Reminder: update this test when adding a new catalog each month! - assert catalogTag == "v9-260326-amd64" + assert catalogTag == "v9-260430-amd64" def test_get_newest_catalog_tag_fail():