Adding catalog sources to an OpenShift Container Platform cluster

Proof of concept Environment

Add single IBM catalog source for all operators in your OpenShift Container Platform cluster, to make the IBM operators available for installation. This gives you a quick way to install the IBM operators for a proof of concept environment.

Production Environment

Add a separate catalog source for each operator in your OpenShift Container Platform cluster, to make the IBM operators available for installation. This task is also required to apply the fix packs for catalog sources prior to an upgrade.

Using a separate catalog source for each operator gives you full control of software versioning on an OpenShift Container Platform cluster with the following benefits:

  • You can upgrade each IBM Cloud Pak® component independently.
  • You have a fully declarative set of artifacts, which you can use to recreate exact installations.
  • You can easily control upgrade and promotion through environments, for example from test to production environments, with a CI/CD pipeline.
  • You can control when the upgrades happen. A new operator version becomes available in an OpenShift Container Platform cluster only after you update the catalog source for that operator. This process effectively gives you manual control of upgrades, without actually using the Manual option, which is not recommended.

Before you begin

If you are applying catalog sources fix packs prior to an upgrade, complete the following steps:

  • Confirm that your operators are running properly.
  • If any pending operator updates require manual approval, get the approval before starting this procedure. Because the Manual option forces all possible upgrades to be done at the same time and can block upgrades, you should only use the default Automatic option.

Procedure

  1. Log into your OpenShift Container Platform cluster by using the oc login command and your user credentials:

    oc login <openshift_url> -u <username> -p <password> -n <namespace>
     
  2. Determine the project/namespace where you want to install the catalog sources.

    • Option 1: For a proof of concept environment, use the openshift-marketplace project/namespace.

    • Option 2: For a production environment, create a new project/namespace for the catalog sources where IBM operators will be installed. For example, create a project/namespace named ibm-operators:

      oc create namespace ibm-operators
       
  3. Apply the catalog source that you need to install.

  4. Confirm that the catalog source was created in the project/namespace where you want to install the catalog sources:

    oc get catalogsource -n <namespace>
     
  5. Repeat steps 3 and 4 for each catalog source that you need to install.

IBM Catalog sources for operators

For a proof of concept environment with internet connection only, copy the command for the catalog source that you need to install.

  1. Create a YAML file for the catalog source:

    cat <<EOF > catalog-source.yaml
    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: ibm-operator-catalog
      namespace: openshift-marketplace
    spec:
      displayName: IBM Operator Catalog
      sourceType: grpc
      image: docker.io/ibmcom/ibm-operator-catalog:latest
      updateStrategy:
      registryPoll:
        interval: 45m
    EOF
     
  2. Apply the catalog source:

    oc apply -f catalog-source.yaml
     

Separate catalog sources for operators

Install the catalog source in a production environment with internet connection

For a production environment with internet connection, complete the following steps to install the catalog sources for each operator.

IBM Cloud Pak foundational services

  1. Create a YAML file for the catalog source:

    cat <<EOF > catalog-sources.yaml
    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: opencloud-operators
    spec:
      displayName: IBMCS Operators
      publisher: IBM
      sourceType: grpc
      image: icr.io/cpopen/ibm-common-service-catalog:<version, such as 4.15>
      updateStrategy:
        registryPoll:
          interval: 45m
    EOF
     
  2. Apply the catalog source in openshift-marketplace namespace or the namespace that you created:

    oc apply -n <namespace> -f catalog-sources.yaml
     

Cloud Native PostgreSQL

  1. Get the catalog-sources.yaml file from the following URL:

    wget https://raw.githubusercontent.com/IBM/cloud-pak/master/repo/case/ibm-cloud-native-postgresql/5.15.0%2B20250416.103820.2490/OLM/catalog-sources.yaml
     
  2. Determine the namespace where you want to install the catalog sources.

    • If you are using the openshift-marketplace project/namespace, you do not need to modify the YAML file. Go to the next step.

    • If you are using a different project/namespace, modify the namespace field in the YAML file to match the project/namespace where you want to install the catalog sources.

      • For example, use sed to modify the namespace field in the YAML file on an Linux system:

        sed -i 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml
         
      • For example, use sed to modify the namespace field in the YAML file on a macOS system:

        sed -i '' 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml
         
  3. Apply the catalog source:

    oc apply --filename catalog-sources.yaml
     

version 419x IBM PostgreSQL operator

For IBM Cloud Pak foundational services version 4.19.x, use IBM PostgreSQL instead of Cloud Native PostgreSQL.

  1. Get the catalog-sources.yaml file from the following URL:

    wget https://raw.githubusercontent.com/IBM/cloud-pak/refs/heads/master/repo/case/ibm-pg-operator/28.3.2/OLM/catalog-sources.yaml
     
  2. Determine the namespace where you want to install the catalog sources.

    • If you are using the openshift-marketplace project/namespace, you do not need to modify the YAML file. Go to the next step.

    • If you are using a different project/namespace, modify the namespace field in the YAML file to match the project/namespace where you want to install the catalog sources.

      • For example, use sed to modify the namespace field in the YAML file on an Linux system:

        sed -i 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml
         
      • For example, use sed to modify the namespace field in the YAML file on a macOS system:

        sed -i '' 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml
         
  3. Apply the catalog source:

    oc apply --filename catalog-sources.yaml
     

Other optional services supported by IBM Cloud Pak foundational services

  • IBM Integrated UI catalog source definition

    1. Get the YAML file from following URL:

      wget https://raw.githubusercontent.com/IBM/cloud-pak/master/repo/case/ibm-zen/6.2.0%2B20250530.152516.232/OLM/catalog-sources.yaml
       
    2. Determine the namespace where you want to install the catalog sources.

      • If you are using the openshift-marketplace project/namespace, you do not need to modify the YAML file. Go to the next step.
      • If you are using a different project/namespace, modify the namespace field in the YAML file to match the project/namespace where you want to install the catalog sources.
    3. Apply the catalog source:

      oc apply --filename catalog-sources.yaml
       
  • IBM Business Team Service catalog source definition

    1. Create a YAML file for the catalog source:

      cat <<EOF > catalog-sources.yaml
      apiVersion: operators.coreos.com/v1alpha1
      kind: CatalogSource
      metadata:
        name: bts-operator
      spec:
        displayName: BTS Operator
        publisher: IBM
        sourceType: grpc
        image: icr.io/cpopen/ibm-bts-operator-catalog:latest
        updateStrategy:
          registryPoll:
            interval: 45m
      EOF
       
    2. Apply the catalog source in openshift-marketplace namespace or the namespace that you created:

      oc apply -n <namespace> -f catalog-sources.yaml
       
  • Foundational services Apache Flink catalog source definition

    1. Create a YAML file for the catalog source:

      cat <<EOF > catalog-sources.yaml
      apiVersion: operators.coreos.com/v1alpha1
      kind: CatalogSource
      metadata:
        name: flink-catalog
      spec:
        displayName: Flink SC2 catalog
        image: icr.io/cpopen/ibm-opencontent-flink-operator-catalog:latest
        publisher: IBM
        sourceType: grpc
        updateStrategy:
          registryPoll:
            interval: 45m
      EOF
       
    2. Apply the catalog source in openshift-marketplace namespace or the namespace that you created:

      oc apply -n <namespace> -f catalog-sources.yaml
       
  • Foundational services OpenSearch catalog source definition

    1. Create a YAML file for the catalog source:

      cat <<EOF > catalog-sources.yaml
      apiVersion: operators.coreos.com/v1alpha1
      kind: CatalogSource
      metadata:
        name: ibm-elastic-operator-catalog
      spec:
        displayName: ibm-elastic-operator-catalog
        image: icr.io/cpopen/ibm-cs-elastic-operator-catalog:latest
        publisher: IBM Content
        sourceType: grpc
        updateStrategy:
          registryPoll:
            interval: 45m
      EOF
       
    2. Apply the catalog source in openshift-marketplace namespace or the namespace that you created:

      oc apply -n <namespace> -f catalog-sources.yaml
       
  • Usage Metering Service catalog source definition

    1. Create a YAML file for the catalog source:

      apiVersion: operators.coreos.com/v1alpha1
      kind: CatalogSource
      metadata:
        name: ibm-usage-metering-catalog-source
      spec:
        displayName: IBM Usage Metering
        publisher: IBM
        sourceType: grpc
        image: icr.io/cpopen/ibm-usage-metering-operator-catalog:1.0.0 
        updateStrategy:
          registryPoll:
            interval: 45m
       
    2. Apply the catalog source in openshift-marketplace namespace or the namespace that you created:

      oc apply -n <namespace> -f catalog-sources.yaml
       

Notes:

Reviewing these files can assist you with the following:

  • Finding the catalog sources for all fix packs.
  • Getting the YAML for the catalog source and creating it by using the console or CLI.
  • Identifying when a new fix pack has been released.

Install the catalog source in a production environment with air-gapped connection

For a production environment with air-gapped connection, complete the following steps to install the catalog sources for each operator after mirroring the images.

  1. Create environment variables with the CASE name and the image inventory on your host. Replace the following CASE values as needed.

    export CASE_NAME=ibm-cp-common-services
    export CASE_VERSION=4.15.0
                      
  2. Determine the namespace where you want to install the catalog sources.

    • If you are using the openshift-marketplace project/namespace, you do not need to modify the YAML file. Go to the next step.
    • If you are using a different project/namespace, modify the namespace field in the YAML file to match the project/namespace where you want to install the catalog sources.
      • For example, use sed to modify the namespace field in the YAML file on an Linux system:

        sed -i 's/namespace: openshift-marketplace/namespace: ibm-operators/g' ~/.ibm-pak/data/mirror/$CASE_NAME/$CASE_VERSION/catalog-sources.yaml
         
      • For example, use sed to modify the namespace field in the YAML file on a macOS system:

        sed -i '' 's/namespace: openshift-marketplace/namespace: ibm-operators/g' ~/.ibm-pak/data/mirror/$CASE_NAME/$CASE_VERSION/catalog-sources.yaml
         
  3. Apply the catalog sources for IBM Cloud Pak foundational services and all its dependent operators.

    oc apply -f ~/.ibm-pak/data/mirror/$CASE_NAME/$CASE_VERSION/catalog-sources.yaml
     
  4. Other optional services

    • If you are using other optional services as part of an IBM Cloud Pak®, see the documentation for that IBM Cloud Pak® to learn more about how to install and use the operator service.

    • For example, you can use following commands to install Integrated UI operator after mirroring the images:

      1. Create environment variables with the CASE name and the image inventory on your host.

        export CASE_NAME=ibm-zen
        export CASE_VERSION=6.2.0%2B20250530.152516.232
         
      2. Determine the namespace where you want to install the catalog sources.

        • If you are using the openshift-marketplace project/namespace, you do not need to modify the YAML file. Go to the next step.
        • If you are using a different project/namespace, modify the namespace field in the YAML file to match the project/namespace where you want to install the catalog sources.
      3. Apply the catalog sources for Integrated UI operator.

        oc apply -f ~/.ibm-pak/data/mirror/$CASE_NAME/$CASE_VERSION/catalog-sources.yaml