Upgrading IBM Software Hub to version 5.3.1

Upgrade IBM Software Hub from version 5.3.0 to 5.3.1, including the CPD platform, Events Operator, Knative Eventing, and watsonx Orchestrate components. The process also applies the latest hotfix to resolve known issues.

Before you begin

Ensure that you upgrade Cloud Pak for Data CLI version to 14.3.1 or later.

Procedure

  1. Create an environment variables file named cpd_vars.sh and update the variables for your environment.
    For detailed instructions, see Setting up installation environment variables.
  2. Load the environment variables file:
    source cpd_vars.sh
  3. Download the Cloud Pak for Data CLI version 14.3.1 binary for your system architecture. For detailed instructions, see Updating the IBM Software Hub command-line interface.
  4. Restart the olm-utils container to update from version 5.3.0 to 5.3.1.
    cpd-cli manage restart-container
    This command replaces the existing workspace.
    Note: Back up the old workspace or the install-options.yml file before you proceed.
  5. Log in to Red Hat OpenShift Container Platform cluster:
    $OC_LOGIN
  6. Log in to the Red Hat OpenShift Container Platform cluster from the olm-utils container:
    $CPDM_OC_LOGIN
    Note: Complete steps 7 through 10 only if your deployment requires the Knative operator.
  7. Deploy the IBM Events Operator cluster resources.
    cpd-cli manage deploy-events-operator \
    --release=${VERSION} \
    --cluster_resources=true
  8. Apply the IBM Events Operator custom resource definitions.
    oc apply \
    -f ${CPD_CLI_MANAGE_WORKSPACE}/work/ibm-events-operator-crds.yaml \
    --server-side \
    --force-conflicts
  9. Deploy the IBM Events Operator to the operator and operand namespaces.
    cpd-cli manage deploy-events-operator \
    --release=5.3.1 \
    --events_operator_ns=${PROJECT_CPD_INST_OPERATORS} \
    --events_operand_ns=${PROJECT_CPD_INST_OPERANDS}
  10. Deploy Knative Eventing with the upgrade flag.
    cpd-cli manage deploy-knative-eventing \
    --release=${VERSION} \
    --block_storage_class=${STG_CLASS_BLOCK} \
    --upgrade=true
  11. Reauthorize the Namespacescope operator with minimum RBAC permissions:
    oc get role nss-managed-role-from-${PROJECT_CPD_INST_OPERATORS} \
    -n ${PROJECT_CPD_INST_OPERATORS} \
    -o json | jq 'any(.rules[].apiGroups[]; . == "*")'
  12. Download the case files for the components to be upgraded.
    cpd-cli manage case-download \
    --components=${COMPONENTS} \
    --release=${VERSION} \
    --operator_ns=${PROJECT_CPD_INST_OPERATORS} \
    --cluster_resources=true \
    --patch_download=false
    Ensure that patch_download is set to false. Specify all components in the components variable, such as cpd_platform and watsonx_orchestrate.
    Warning: Ensure that the patch folder does not exist in your working directory. For example, <your_working_directory>/offline.
  13. Verify the case versions after the download completes.
    Note:
    • Ensure that the case versions for watsonx Orchestrate and Zen are 7.1.0 and 6.4.0, respectively.
    • The default location of the work directory is cpd-cli-workspace/olm-utils-workspace/work.
    • To check the version of a downloaded case, go to the following directory: cpd-cli-workspace/olm-utils-workspace/work/offline/5.3.1/.ibm-pak/data/cases. The case version information is available in this directory.
  14. Apply the cluster-scoped resources from the work directory:
    oc apply -f cluster_scoped_resources.yaml \
    --server-side \
    --force-conflicts
  15. Review the license terms for the release.
    cpd-cli manage get-license \
    --release=${VERSION}
  16. Upgrade the Cloud Pak for Data platform component.
    cpd-cli manage install-components \
    --license_acceptance=true \
    --components=cpd_platform \
    --release=${VERSION} \
    --operator_ns=${PROJECT_CPD_INST_OPERATORS} \
    --instance_ns=${PROJECT_CPD_INST_OPERANDS} \
    --image_pull_prefix=${IMAGE_PULL_PREFIX} \
    --image_pull_secret=${IMAGE_PULL_SECRET} \
    --upgrade=true
  17. Validate that the Cloud Pak for Data platform and Zen service are upgraded successfully.
    oc get ibmcpd -o yaml
    oc get zenservice -o yaml
    Verify that the Cloud Pak for Data platform version is 5.4.0 and the Zen service version is 6.4.0. If the versions match, the Cloud Pak for Data platform upgrade is successful.
  18. Add the following content to install-options.yaml:
    ---
    non_olm:
      watsonxOrchestrate:
        installMode: "agentic"  
        size: small
        watsonxAI:
          watsonxaiifm: false

    This file contains the configuration options for your watsonx Orchestrate installation.

  19. Run the watsonx Orchestrate upgrade:
    cpd-cli manage install-components \
    --license_acceptance=true \
    --components=watsonx_orchestrate \
    --release=${VERSION} \
    --operator_ns=${PROJECT_CPD_INST_OPERATORS} \
    --instance_ns=${PROJECT_CPD_INST_OPERANDS} \
    --image_pull_prefix=${IMAGE_PULL_PREFIX} \
    --image_pull_secret=${IMAGE_PULL_SECRET} \
    --param-file=/tmp/work/install-options.yml \
    --skip_components=watson_assistant \
    --upgrade=true
  20. After the upgrade starts and new components begin to deploy, apply hotfix 5.3.1.4 to resolve the 502 bad gateway issue.

    For more information about this hotfix, see IBM Support: Hotfix 5.3.1.4.

    1. Apply the patch to the channel integrations pod:
      oc patch wo wo \
        -n cpd-instance-1 \
        --type=merge \
        --patch '{
          "spec": {
            "image": {
              "digestOverrides": {
                "channel-integrations": "sha256:5db27d33535eb84857888ce5e74c9ec8b7a594e203d5b2265ffb45a25081df9d"
              }
            }
          }
        }'
    2. Apply the patch to the pgbouncer configuration with a timeout of 180 seconds:
      oc patch watsonxorchestrates.wo.watsonx.ibm.com/wo \
      -n "${PROJECT_CPD_INST_OPERANDS}" \
      --type=merge \
      -p '{"spec":{"pgbouncer":{"config":{"global":{"idle_transaction_timeout":"180"}}}}}'