Upgrading operator subscriptions

An operator subscription gives information about an operator to Operator Lifecycle Manager (OLM).

When you created the operator subscriptions, you chose an installation plan for each operator. The installation plan determines the actions that you typically need to take to update an operator subscription when a new version of the operator is available:

Automatic
If you specified installPlanApproval: Automatic, Red Hat® OpenShift® Container Platform will automatically load newer versions of the operator if they are available. For example, if you mirror images to a private container registry and you set the install plan to automatic, Red Hat OpenShift Container Platform will automatically use the latest version of the operator that is available in the private container registry.
Manual
If you specified installPlanApproval: Manual, OLM creates an update request when a newer version of an operator is available. A cluster administrator must manually approve the update request to update the operator to the newer version.
Important: Some operator subscriptions cannot be upgraded and must be edited or deleted and recreated. For example, if an operator used a different channel in a previous refresh, you need to update the operator subscription to use the new channel.

Before you begin

Best practice: You can run the commands in this task exactly as written if you set up environment variables for your installation. For instructions, see Best practice: Setting up install variables.

Ensure that you run the environment variable script before you run the commands in this task.

Procedure

Complete the following tasks to update the relevant operator subscriptions on your cluster:

1. Updating the scheduling service operator subscription

If you installed a previous release of the scheduling service, you might need to update the operator subscription:
  1. If a previous version of the scheduling service operator is installed on your cluster, you must update the channel in the operator subscription.
    oc get sub -n ${PROJECT_CPFS_OPS} ibm-cpd-scheduling-catalog-subscription \
    -o jsonpath='{.status.installedCSV} {"\n"}'
    If the command returns one of the following values, complete the next step to update the operator subscription:
    • ibm-cpd-scheduling-operator.v1.2.1
    • ibm-cpd-scheduling-operator.v1.2.2
    • ibm-cpd-scheduling-operator.v1.2.3
  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-cpd-scheduling-catalog-subscription \
    --namespace ${PROJECT_CPFS_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v1.3"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPFS_OPS} ibm-cpd-scheduling-catalog-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-cpd-scheduling-operator.v1.3.5.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPFS_OPS} ibm-cpd-scheduling-operator.v1.3.5 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPFS_OPS} -l olm.owner="ibm-cpd-scheduling-operator.v1.3.5" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.

2. Updating the Cloud Pak for Data platform operator subscription

If you installed a previous release Cloud Pak for Data, you might need to update the Cloud Pak for Data platform operator subscription.

  1. If Version 2.0.0 of the Cloud Pak for Data platform operator is installed on your cluster, you must update the channel in the operator subscription.
    oc get sub -n ${PROJECT_CPD_OPS} cpd-operator \
    -o jsonpath='{.status.installedCSV} {"\n"}'

    If the command returns cpd-platform-operator.v2.0.0, complete the next step to update the operator subscription.

  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription cpd-operator \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v2.0"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} cpd-operator \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns cpd-platform-operator.v2.0.8.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} cpd-platform-operator.v2.0.8 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="cpd-platform-operator.v2.0.8" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.

3. Updating the Db2U operator subscription

Important: This step applies only to installations that use the specialized installation architecture, where the Cloud Pak for Data software operators are installed in a separate project from the IBM Cloud Pak® foundational services operators.

The Db2U operator is used by several services. However, prior to Refresh 3 of Version 4.0, different services used different methods to ensure that the Db2U operator is installed. Depending on the services that you installed, you might have two instances of the Db2U operator on your cluster.

If you installed any of the following services, update your environment to ensure that there is only one instance of the Db2U operator:

  • Data Virtualization
  • Db2®
  • Db2 Big SQL
  • Db2 Warehouse
  • OpenPages® (required only if you want OpenPages to automatically provision a Db2 database)
  • Watson™ Knowledge Catalog

To update your environment:

  1. Run the following command to edit the IBM Cloud Pak foundational services operand registry.
    oc edit operandRegistry common-service \
    --namespace ${PROJECT_CPFS_OPS}
  2. Change the value of the namespace entry for the ibm-db2u-operator. Specify the OpenShift project where the Cloud Pak for Data operators are installed, for example, cpd-operators:
     - channel: v1.1
        installPlanApproval: Automatic
        name: ibm-db2u-operator
        namespace: cpd-operators
        packageName: db2u-operator
        scope: public
        sourceName: ibm-db2uoperator-catalog
        sourceNamespace: openshift-marketplace
    Note: If the namespace entry already points to the Cloud Pak for Data operators project, no change is required.
  3. Save your changes and exit. For example, if you are using vi, hit esc and enter :wq.

When you save the changes to the operand registry, the Db2U operator (ibm-db2u-operator) is re-deployed to the Cloud Pak for Data operators project.

4. Updating the PostgreSQL operator subscription

The PostgreSQL operator is used by several services. However, prior to Refresh 3 of Version 4.0, different services used different methods to ensure that the PostgreSQL operator is installed. Depending on the services that you installed, you might have multiple instances of the PostgreSQL operator on your cluster.

If you installed any of the following services, update your environment to ensure that the services use the PostgreSQL operator that is provided by IBM Cloud Pak foundational services:
  • EDB Postgres
  • Watson Assistant
  • Watson Discovery
  • Watson Knowledge Studio
  • Watson Speech to Text
  • Watson Text to Speech

To update your environment:

  1. Submit the following operand request to install the Cloud Native PostgreSQL operator in the ${PROJECT_CPFS_OPS} project.
    Important: If you installed the Cloud Native PostgreSQL operator as a cluster-scoped operator for use outside of Cloud Pak for Data, you can skip this step.
    cat <<EOF |oc apply -f -
    apiVersion: operator.ibm.com/v1alpha1
    kind: OperandRequest
    metadata:
      name: common-service-edb
      namespace: ${PROJECT_CPFS_OPS}
    spec:
      requests:
        - operands:
            - name: cloud-native-postgresql
          registry: common-service
    EOF
  2. Validate that the operator was successfully installed.
    1. Run the following command to confirm that the operand request was created:
      oc get opreq common-service-edb -n ${PROJECT_CPFS_OPS} \
      -o jsonpath='{.status.phase}  {"\n"}'

      Verify that the command returns Running. If the command returns Initialized or Installing, wait several minutes and run the command again.

    2. Run the following command to confirm that the operator is installed:
      oc get pod -n ${PROJECT_CPFS_OPS} -l app.kubernetes.io/name=cloud-native-postgresql \
      -o jsonpath='{.items[0].status.phase} {"\n"}'

      Verify that the command returns Running.

  3. If you installed the EDB Postgres service in a previous refresh, delete the instance of the PostgreSQL operator that is installed in openshift-operators project:
    1. Run the following command to delete the operator:
      oc delete subscription cloud-native-postgresql-catalog-subscription \
      --namespace openshift-operators
    2. Run the following command to find the name of the PostgreSQL CSV:
      oc get csv --namespace openshift-operators

      Review the output to find the name of the cloud-native-postgresql CSV. For example: cloud-native-postgresql.v1.10.0.

    3. Run the following command to delete the cloud-native-postgresql CSV.

      Replace cloud-native-postgresql.v1.10.0 with the name returned by the previous command.

      oc delete csv cloud-native-postgresql.v1.10.0 \
      --namespace openshift-operators
  4. If you installed one of the following services in a previous refresh, delete the instance of the PostgreSQL operator that is installed in the project where the service is installed:
    • Watson Assistant
    • Watson Discovery
    • Watson Knowledge Studio
    • Watson Speech to Text
    • Watson Text to Speech
    1. Run the following command to delete the operator.
      oc delete subscription cloud-native-postgresql-catalog-subscription \
      --namespace ${PROJECT_CPD_INSTANCE}
    2. Run the following command to find the name of the PostgreSQL CSV.
      oc get csv --namespace ${PROJECT_CPD_INSTANCE}

      Review the output to find the name of the cloud-native-postgresql CSV. For example: cloud-native-postgresql.v1.10.0.

    3. Run the following command to delete the cloud-native-postgresql CSV.

      The command assumes that the services are installed in the cpd-instance project.

      Replace cloud-native-postgresql.v1.10.0 with the name returned by the previous command.

      oc delete csv cloud-native-postgresql.v1.10.0 \
      --namespace ${PROJECT_CPD_INSTANCE}

5. Updating service subscriptions

If you installed a previous release of one of the following services, you might need update the associated operator subscriptions:


Db2 Data Gate

If Version 1.0.0 of the Db2 Data Gate operator is installed on your cluster, you must update the channel in the operator subscription.

  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-datagate-operator-subscription \
    -o jsonpath='{.status.installedCSV} {"\n"}'

    If the command returns ibm-datagate-operator.v1.0.0, complete the next step to update the operator subscription.

  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-datagate-operator-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v2.0"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-datagate-operator-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-datagate-operator.v2.0.8.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-datagate-operator.v2.0.8 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-datagate-operator.v2.0.8" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


Decision Optimization

If Version 4.0.0 of the Decision Optimization operator is installed on your cluster, you must update the channel in the operator subscription.

  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-cpd-dods \
    -o jsonpath='{.status.installedCSV} {"\n"}'

    If the command returns ibm-cpd-dods.v4.0.0, complete the next step to update the operator subscription.

  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-cpd-dods-operator-catalog-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v4.0"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-cpd-dods-operator-catalog-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-cpd-dods.v4.0.9.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-cpd-dods.v4.0.9 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-cpd-dods.v4.0.9" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


IBM Match 360 with Watson
If Version 1.0.0 of the IBM Match 360 with Watson operator is installed on your cluster, you must:
  • Update the source of the Elasticsearch operator subscription
  • Update the channel of the IBM Match 360 with Watson
  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-mdm-operator-subscription \
    -o jsonpath='{.status.installedCSV} {"\n"}'

    If the command returns ibm-mdm.v1.0.0, complete the subsequent steps to update the Elasticsearch operator subscription and the IBM Match 360 with Watson operator subscription.

  2. Run the appropriate command to update the source for the Elasticsearch operator subscription.
    Private container registry
    oc patch subscription ibm-elasticsearch-operator-v1.1-ibm-elasticsearch-catalog-openshift-marketplace \ 
    --namespace ${PROJECT_CPD_OPS} \ 
    --type json \ 
    --patch '[{"op":"replace", "path":"/spec/source", "value":"ibm-elasticsearch-catalog" }]'
    IBM Entitled Registry with catalog sources that pull specific versions of images
    oc patch subscription ibm-elasticsearch-operator-v1.1-ibm-elasticsearch-catalog-openshift-marketplace \ 
    --namespace ${PROJECT_CPD_OPS} \ 
    --type json \ 
    --patch '[{"op":"replace", "path":"/spec/source", "value":"ibm-elasticsearch-catalog" }]'
    IBM Entitled Registry with a catalog source for the IBM Operator Catalog
    oc patch subscription ibm-elasticsearch-operator-v1.1-ibm-elasticsearch-catalog-openshift-marketplace \ 
    --namespace ${PROJECT_CPD_OPS} \ 
    --type json \ 
    --patch '[{"op":"replace", "path":"/spec/source", "value":"ibm-operator-catalog" }]'
    Note: After you update the source in the Elasticsearch operator subscription, you can delete the opencontent-elasticsearch-dev-catalog catalog. For details, see Removing outdated catalogs.
  3. Run the following command to update the channel in the IBM Match 360 with Watson operator subscription:
    oc patch subscription ibm-mdm-operator-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v1.1"}}'
  4. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-mdm-operator-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-mdm.v1.1.278.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-mdm.v1.1.278 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-mdm.v1.1.278" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


Informix

If Version 4.0.0 of the Informix ibm-informix-operator operator is installed on your cluster, you must update the channel in the operator subscription.

  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-informix-operator \
    -o jsonpath='{.status.installedCSV} {"\n"}'

    If the command returns ibm-informix-operator.v4.0.0, complete the next step to update the operator subscription.

  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-informix-operator-catalog-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v1.0"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-informix-operator-catalog-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-informix-operator.v4.1.1.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-informix-operator.v4.1.1 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-informix-operator.v4.1.1" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


MongoDB

If Version 1.10.0 or 1.12.0 of the MongoDB (third-party) operator is installed on your cluster, you must delete the operator from the openshift-operators project and re-install it in the project where the Cloud Pak for Data software operators are installed.

  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace openshift-operators ibm-mongodb-enterprise-catalog-subscription \
    -o jsonpath='{.status.installedCSV} {"\n"}'

    If the command returns mongodb-enterprise.v1.10.0 or mongodb-enterprise.v1.12.0, complete the subsequent steps to update the operator subscription.

  2. Delete the operator in the openshift-operators project:
    1. Run the following command to delete the existing operator in the openshift-operators project:
      oc delete subscription ibm-mongodb-enterprise-catalog-subscription \
      --namespace openshift-operators
    2. Run the following command to get the name of the existing CSV in the openshift-operators project:
      oc get csv --namespace openshift-operators

      The command should return a CSV with the following format: mongodb-enterprise.v1.10.0 or mongodb-enterprise.v1.12.0

    3. Run the following command to delete the CSV from the openshift-operators project.
      • To delete mongodb-enterprise.v1.10.0, run:
        
        oc delete csv mongodb-enterprise.v1.10.0 \
        --namespace openshift-operators
      • To delete mongodb-enterprise.v1.12.0, run:
        
        oc delete csv mongodb-enterprise.v1.12.0 \
        --namespace openshift-operators
  3. Recreate the operator in the project where the Cloud Pak for Data software operators are installed.
    Private container registry
    cat <<EOF |oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: ibm-mongodb-enterprise-catalog-subscription
      namespace: ${PROJECT_CPD_OPS} 
    spec:
      channel: stable
      name: mongodb-enterprise
      installPlanApproval: ${APPROVAL_TYPE}
      source: ibm-mongodb-enterprise-catalog
      sourceNamespace: ${PROJECT_CATSRC}
    EOF
    IBM Entitled Registry with catalog sources that pull specific versions of images
    cat <<EOF |oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: ibm-mongodb-enterprise-catalog-subscription
      namespace: ${PROJECT_CPD_OPS} 
    spec:
      channel: stable
      name: mongodb-enterprise
      installPlanApproval: ${APPROVAL_TYPE}
      source: ibm-mongodb-enterprise-catalog
      sourceNamespace: ${PROJECT_CATSRC}
    EOF
    IBM Entitled Registry with a catalog source for the IBM Operator Catalog
    cat <<EOF |oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: ibm-mongodb-enterprise-catalog-subscription
      namespace: ${PROJECT_CPD_OPS} 
    spec:
      channel: stable
      name: mongodb-enterprise
      installPlanApproval: ${APPROVAL_TYPE}
      source: ibm-operator-catalog
      sourceNamespace: ${PROJECT_CATSRC}
    EOF
  4. Validate that the operator was successfully created.
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-mongodb-enterprise-catalog-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns mongodb-enterprise.v1.15.2.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} mongodb-enterprise.v1.15.2 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="mongodb-enterprise.v1.15.2" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


Planning Analytics

If Version 4.0.0, 4.0.1, or 4.0.2 of the Planning Analytics operator is installed on your cluster, you must update the channel in the operator subscription.

  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-planning-analytics-subscription \
    -o jsonpath='{.status.installedCSV} {"\n"}'
    If the command returns one of the following values, complete the next step to update the operator subscription:
    • ibm-planning-analytics-operator.v4.0.0
    • ibm-planning-analytics-operator.v4.0.1
    • ibm-planning-analytics-operator.v4.0.2
  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-productmaster-catalog-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v4.0"}}'
    
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-planning-analytics-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-planning-analytics-operator.v4.0.9.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-planning-analytics-operator.v4.0.9 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-planning-analytics-operator.v4.0.9" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


Product Master

If Version 1.0.0 of the Product Master operator is installed on your cluster, you must update the channel in the operator subscription.

  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-productmaster-catalog-subscription \
    -o jsonpath='{.status.installedCSV} {"\n"}'

    If the command returns ibm-cpd-productmaster.v1.0.0, complete the next step to update the operator subscription.

  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-productmaster-catalog-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v1.0"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub --namespace ${PROJECT_CPD_OPS} ibm-productmaster-catalog-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-cpd-productmaster.v1.0.4.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-cpd-productmaster.v1.0.4 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-cpd-productmaster.v1.0.4" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


Watson Machine Learning

If Version 1.0.1486 or 1.1.0 of the Watson Machine Learning operator is installed on your cluster, you must update the channel in the operator subscription.

  1. Run the following command to determine which version of the operator is installed on the cluster:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-cpd-wml-operator-subscription \
    -o jsonpath='{.status.installedCSV} {"\n"}'
    If the command returns one of the following values, complete the next step to update the operator subscription:
    • ibm-cpd-wml-operator.v1.0.1486
    • ibm-cpd-wml-operator.v1.1.0
  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-cpd-wml-operator-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v1.1"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-cpd-wml-operator-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-cpd-wml-operator.v1.1.8.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-cpd-wml-operator.v1.1.8 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-cpd-wml-operator.v1.1.8" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


Watson OpenScale

If the Watson OpenScale operator uses the alpha or v1 update channel, you must update the channel in the operator subscription.

  1. Run the following command to determine which update channel is used:
    oc get sub --namespace ${PROJECT_CPD_OPS} ibm-watson-openscale-operator-subscription \
    -o jsonpath='{.spec.channel} {"\n"}'

    If the command returns alpha or v1, complete the next step to update the channel in the operator subscription.

  2. Run the following command to update the channel in the operator subscription:
    oc patch subscription ibm-watson-openscale-operator-subscription \
    --namespace ${PROJECT_CPD_OPS} \
    --type merge \
    --patch '{"spec": {"channel":"v1.5"}}'
  3. Validate that the operator was successfully updated:
    1. Run the following command to confirm that the subscription was triggered:
      oc get sub -n ${PROJECT_CPD_OPS} ibm-watson-openscale-operator-subscription \
      -o jsonpath='{.status.installedCSV} {"\n"}'

      Verify that the command returns ibm-cpd-wos.v1.5.4.

    2. Run the following command to confirm that the cluster service version (CSV) is ready:
      oc get csv -n ${PROJECT_CPD_OPS} ibm-cpd-wos.v1.5.4 \
      -o jsonpath='{ .status.phase } : { .status.message} {"\n"}'

      Verify that the command returns Succeeded : install strategy completed with no errors.

    3. Run the following command to confirm that the operator is ready:
      oc get deployments -n ${PROJECT_CPD_OPS} -l olm.owner="ibm-cpd-wos.v1.5.4" \
      -o jsonpath="{.items[0].status.availableReplicas} {'\n'}"

      Verify that the command returns an integer greater than or equal to 1. If the command returns 0, wait for the deployment to become available.


6. Creating operator subscriptions

In the preceding sections, you updated the existing operator subscriptions on your cluster.

If you installed any services when you upgraded to Refresh 9 of Version 4.0, you must create the operator subscriptions for any newly installed services. For information on how to create operator subscriptions for each service, see: Creating operator subscriptions.