Option 1: Upgrading the operators in an offline environment

You must upgrade the operators in an air gapped environment before you apply your custom resource upgrades.

Before you begin

The upgrade of Cloud Pak foundational services is supported only when the existing foundational services instance has a version of 4.0 or higher, and is namespace-scoped in the same namespace as the CP4BA deployment.

Restriction: The upgrade of foundational services is not supported for 23.0.2 in the following cases:
  • You have a cluster-scoped foundational services instance and want to upgrade to a namespace-scoped instance. You probably have a cluster-scoped instance only in the following circumstances:

    • You installed Cloud Pak for Business Automation 21.0.3 GA or up to 21.0.3-IF018, and then you upgraded incrementally to 23.0.1 (21.0.3 → 22.0.1 → 22.0.2 → 23.0.1).

    • You installed Cloud Pak for Business Automation 22.0.2 GA or 22.0.2-IF006, and then you upgraded to 23.0.1.

  • You have a cluster-scoped foundational services instance and you want to continue to use a cluster-scoped foundational services instance in 23.0.2.

  • You have a namespace-scoped foundational services instance and you want to install CP4BA in a different namespace.

An upcoming release is planned to support an upgrade of a CP4BA deployment that uses a cluster-scoped foundational services instance to a namespace-scoped instance. Remember, you might have a cluster-scoped instance if you originally installed a deployment before CP4BA 21.0.3-IF019, or you installed your CP4BA 22.0.2 or 23.0.1 deployment from the OCP console without creating a common-service-maps ConfigMap. If you do have this type of deployment, it is recommended that you wait for the new upgrade support.

  • Install the yq command-line YAML processor on your client machine of the target cluster before you follow the upgrade process.
    wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq &&\
    chmod +x /usr/bin/yq
  • Make sure that you have the Java Runtime Engine (JRE) 8.x on your client machine to run the scripts you download from the CASE package.

About this task

If you are upgrading to an interim fix release of 23.0.2, consult the instructions in the CP4BA interim fix readme files. Check the changes in each interim fix readme file that might affect your upgrade.

One significant change in an interim fix might be that the version of the Cloud Pak foundational services operator is different from the base version. An interim fix might include a new version of Cloud Pak foundational services. Use the relevant instructions in the CP4BA interim fix readme file to upgrade your cluster along with the steps in IBM Docs.

Procedure

  1. Set up the environment variables by running the case save command for the new version, and mirror the entitled registry images to trigger the operator upgrades. Make sure that you create a new offline folder to contain the new case image.
  2. Download the cert-kubernetes repository.
    1. Download the 23.0.2 package by clicking Container Application Software for Enterprises (CASE) package 5.1.0, or go to the CASE packages URL and download the package for a specific or the latest interim fix.
      wget <case_package_url>
    2. Extract the package.
      tar -xvzf ibm-cp-automation-5.1.0.tgz
      cd ibm-cp-automation/inventory
      cd cp4aOperatorSdk/files/deploy/crs
      tar -xvf cert-k8s-23.0.2.tar
    3. Set an environment variable for the cert-kubernetes/scripts path.
      cd cert-kubernetes/scripts
      export cert_kubernetes_scripts="$(pwd)"
  3. Log in to the target cluster from a client.
    oc login https://<CLUSTERIP>:<port> -u <ADMINISTRATOR>
  4. Update the channel for all the CP4BA operators in the OpenShift Container Platform console to v23.2.
    1. Run the following command to change the project to your CP4BA project.
      oc project <cp4ba-ns>

      Replace <cp4ba-ns> with your CP4BA project.

    2. Run the following command to get the existing subscriptions to make sure that you are in the correct project.
      oc get sub
    3. Run the following commands to update all the CP4BA operator subscriptions to v23.2.
      oc patch subscriptions.operators.coreos.com ibm-ads-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com ibm-content-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com ibm-cp4a-operator-catalog-subscription -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com ibm-cp4a-wfps-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com ibm-dpe-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com ibm-insights-engine-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com ibm-pfs-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com icp4a-foundation-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      oc patch subscriptions.operators.coreos.com ibm-odm-operator-v23.1-ibm-cp4a-operator-catalog-openshift-marketplace -p '{"spec":{"channel":"v23.2"}}' --type=merge
      

      After you changed the channels to v23.2, all the CP4BA operators upgrade to 23.0.2, except the CP4BA multi-pattern (ibm-cp4a-operator) operator. This is the expected behavior.

  5. Update the catalogs with the new version.
    Note: If the IBMPAK_HOME environment variable is set, the downloaded CASE is located in ${IBMPAK_HOME}/.ibm-pak/data/mirror/${CASE_NAME}/${CASE_VERSION}/catalog-sources.yaml.
    1. Required if: If you want to change the namespace from the global catalog namespace (GCN) to your target CP4BA namespace (cp4ba-project), replace “openshift-marketplace” with the “<CP4BA_namespace>” in the generated catalog-sources.yaml file for all catalogs, except “ibm-cert-manager-catalog” and “ibm-licensing-catalog”. Replace the GCN in these catalogs to “ibm-cert-manager” and “ibm-licensing”, respectively. Then, run the command in step b.
    2. Run the following command from the host where you mirrored the images:
      cat $HOME/.ibm-pak/data/mirror/${CASE_NAME}/${CASE_VERSION}/catalog-sources.yaml | sed 's/opencloud-operators/opencloud-operators-v4-2/g' | oc apply -f -

      Wait a few minutes for the update to complete. Before you go to the next step, check whether all the pods are up and running.

      Note: Wait for all the CP4BA operators to be upgraded to the v23.2 channel.
  6. Might be required: If you changed the global catalog namespace to a target CP4BA namespace (cp4ba-project).
    Note: After adding the CatalogSource resources, all operators are upgraded to 23.0.2 except ibm-cp4a-operator. The ibm-cp4a-operator is upgraded after Cloud Pak foundational services is upgraded.
    1. Click Resources > Subscriptions.
    2. Click ibm-cp4a-operator, click Actions, and select Edit Subscription.
    3. Update spec.sourceNamespace to your target CP4BA namespace and click Save.
    4. Update the namespace to your target namespace (cp4ba-project) for all the following CP4BA operators:
      ibm-content-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
      ibm-ads-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
      ibm-cp4a-wfps-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
      ibm-dpe-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
      ibm-insights-engine-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
      ibm-odm-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
      ibm-pfs-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
      icp4a-foundation-operator-v23.2-ibm-cp4a-operator-catalog-openshift-marketplace
  7. Upgrade the IBM Certificate Manager and IBM License Service operators to v4.2. Go to your downloaded cert-kubernetes folder.
    cd cert-kubernetes/scripts/cpfs/installer_scripts/cp3pt0-deployment
    Note: If your current CP4BA deployment is 23.0.1 IF004 or later, you can skip this step.
    • Run the following command for global catalog namespace.
      ./setup_singleton.sh --enable-licensing \ 
      -cmNs ibm-cert-manager -licensingNs ibm-licensing -c v4.2 \
      --license-accept
    • Run the following command for target CP4BA namespace (private catalog).
      ./setup_singleton.sh --enable-licensing \
      --enable-private-catalog \
      -cmNs ibm-cert-manager -licensingNs ibm-licensing -c v4.2 \
      --license-accept
  8. Upgrade Cloud Pak foundational services to v4.2. Go to your downloaded cert-kubernetes folder.
    cd cert-kubernetes/scripts/cpfs/installer_scripts/cp3pt0-deployment
    Note: If your current CP4BA deployment is 23.0.1 IF004 or later, you can skip this step.
    • Run the following command for global catalog namespace.
      
      ./setup_tenant.sh --operator-namespace <cp4ba-ns> -s opencloud-operators-v4-2 -c v4.2 --license-accept -v 1
      
    • Run the following command for target CP4BA namespace (private catalog).
      ./setup_tenant.sh --operator-namespace <cp4ba-ns> --license-accept -c v4.2 -s opencloud-operators-v4-2 --enable-private-catalog
  9. You can verify whether the operators are updated to 23.0.2 by running the following commands.
    oc get sub
    oc get csv
  10. Run the following commands to check the version of the foundational services operator.
    oc get csv ibm-common-service-operator.v4.2.0 \
    --no-headers --ignore-not-found \
    -n <cs_operator_project_name> \
    -o jsonpath='{.metadata.annotations.operatorVersion}'
    oc get csv ibm-common-service-operator.v4.2.0 \
    --no-headers --ignore-not-found \
    -n <cs_operator_project_name> \
    -o jsonpath='{.status.phase}'

What to do next

Go to and complete the steps in Upgrading your IBM Cloud Pak deployment.