Moving to specific catalog sources for each operator

If you have an online installation from a previous release, and you are using the IBM Operator Catalog, follow these steps to begin using specific catalog sources for each operator. Applying individual catalog sources is the most effective way to fully control software versioning on a cluster.

Important: A cluster administrator needs to perform this task. For more information, see Roles and permissions.

Procedure

You must use the CLI for this procedure.

The following procedure moves the installation from the IBM Operator Catalog so that you can use specific catalog sources for each operator. For more details about the advantages of using specific catalog sources, see Adding catalog sources to a cluster.

  1. Add the specific catalog sources for each operator that you need by following the instructions under "Adding specific catalog sources for each operator" in Adding catalog sources to a cluster. Doing so adds multiple catalog sources on the cluster.

  2. To confirm that the previous step completed successfully, run:

    oc get catalogsources -n openshift-marketplace

    Example response:

    oc get catalogsources -n openshift-marketplace
    
    NAME                                         DISPLAY                                                   TYPE   PUBLISHER   AGE
    appconnect-operator-catalogsource            ibm-appconnect-5.0.0-catalog-source                       grpc   IBM         20s
    ibm-integration-platform-navigator-catalog   ibm-integration-platform-navigator-1.7.1-catalog-source   grpc   IBM         5m31s
    ibm-operator-catalog                         IBM Operator Catalog                                      grpc   IBM         58m
    opencloud-operators                          ibm-cp-common-services-1.15.3-catalog-source              grpc   IBM         35d
  3. Delete the IBM Operator Catalog source:

    oc delete catalogsource ibm-operator-catalog -n openshift-marketplace

    The operators that were using the catalog source now change their status to CatalogSource not found. This behavior is expected.

    CatalogSource not found
  4. Delete all ibm-common-service-operator pods in your cluster. Get all the pods by running:

    oc get pods -A | grep ibm-common-service-operator

    Example response:

    oc get pods -A | grep ibm-common-service-operator
    
    openshift-operators                                ibm-common-service-operator-858c74b844-9fn9h                                 1/1     Running     0                63d
    integration                                        ibm-common-service-operator-8851585455-68431                                 1/1     Running     0                63d
    ibm-common-services                                ibm-common-service-operator-4565465554-76472                                 1/1     Running     0                63d

    Now delete the pods:

    oc delete pod <pod name 1> <pod name 2> -n <namespace>
  5. Change the configuration of Cloud Pak foundational services so that it uses the specific catalog source rather than the IBM Operator Catalog.

    1. Open the YAML that contains this configuration:

    oc edit operandregistry common-service -n ibm-common-services
    1. In the spec.operators array, change all sourceName values from ibm-operator-catalog to opencloud-operators. There are between 10 and 20 fields in which to change this value. For example, this is the original array:

    spec:
      operators:
      - channel: v3
          installPlanApproval: Automatic
          . . .
          sourceName: ibm-operator-catalog 
          sourceNamespace: openshift-marketplace

    This is the updated array:

    spec:
      operators:
      - channel: v3
          installPlanApproval: Automatic
          . . .
          sourceName: opencloud-operators
          sourceNamespace: openshift-marketplace
    1. Save the changes.

  6. Change the subscriptions of each Cloud Pak for Integration operator which was using the IBM Operator Catalog so that it points at the new specific catalog source for that operator.

    • First, confirm which subscriptions were using that catalog. Replace <operators-namespace> with either openshift-operators or a specific namespace:

      oc get subscriptions -n <operators-namespace>

      Review the values in the SOURCE column.

      NAME                                  PACKAGE                              SOURCE                 CHANNEL
      ibm-appconnect                        ibm-appconnect                       ibm-operator-catalog   v5.0-lts
      ibm-common-service-operator           ibm-common-service-operator          opencloud-operators    v3
      ibm-integration-platform-navigator    ibm-integration-platform-navigator   ibm-operator-catalog   v6.0
    • Open the editor for the subscription. Replace <subscription-name> with the a value from the NAME column in the previous sub-step, and <operators-namespace> with either openshift-operators or a specific namespace:

      oc edit subscription <subscription-name> -n <operators-namespace>

      For example:

      oc edit subscription ibm-integration-platform-navigator -n openshift-operators
    • Change the spec.source value from ibm-operator-catalog to the name of the catalog source created in step 1, for example:

      spec:
        channel: v6.0
        installPlanApproval: Automatic
        name: ibm-integration-platform-navigator
        source: ibm-operator-catalog --> ibm-integration-platform-navigator-catalog
        sourceNamespace: openshift-marketplace
        startingCSV: ibm-integration-platform-navigator.v6.0.1
    • Save these changes. The operator installation now points at the new catalog source, and the operator status changes back from CatalogSource not found to Succeeded.

    • Repeat these sub-steps for all the Cloud Pak for Integration operators installed in the namespace.

Now that you are move to specific catalog sources, going forward, you will upgrade the operator for each capability independently by first updating the specific catalog source for that operator, and then upgrading the operator subscription. This gives you full control over when to upgrade and what to upgrade.