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
-
Log into your OpenShift Container Platform cluster by using the
oc logincommand and your user credentials:oc login <openshift_url> -u <username> -p <password> -n <namespace> -
Determine the project/namespace where you want to install the catalog sources.
-
Option 1: For a proof of concept environment, use the
openshift-marketplaceproject/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
-
-
Apply the catalog source that you need to install.
- Option 1: For a proof of concept environment, apply a single catalog source for all operators by copying the applicable command in IBM Catalog sources for operators.
- Option 2: For a production environment, apply a separate catalog source for each operators by copying the applicable command in Separate catalog sources for operators.
-
Confirm that the catalog source was created in the project/namespace where you want to install the catalog sources:
oc get catalogsource -n <namespace> -
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.
-
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 -
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
-
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 -
Apply the catalog source in
openshift-marketplacenamespace or the namespace that you created:oc apply -n <namespace> -f catalog-sources.yaml
Cloud Native PostgreSQL
-
Get the
catalog-sources.yamlfile 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 -
Determine the namespace where you want to install the catalog sources.
-
If you are using the
openshift-marketplaceproject/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
namespacefield in the YAML file to match the project/namespace where you want to install the catalog sources.-
For example, use
sedto modify thenamespacefield in the YAML file on an Linux system:sed -i 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml -
For example, use
sedto modify thenamespacefield in the YAML file on a macOS system:sed -i '' 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml
-
-
-
Apply the catalog source:
oc apply --filename catalog-sources.yaml
IBM PostgreSQL operator
For IBM Cloud Pak foundational services version 4.19.x, use IBM PostgreSQL instead of Cloud Native PostgreSQL.
-
Get the
catalog-sources.yamlfile 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 -
Determine the namespace where you want to install the catalog sources.
-
If you are using the
openshift-marketplaceproject/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
namespacefield in the YAML file to match the project/namespace where you want to install the catalog sources.-
For example, use
sedto modify thenamespacefield in the YAML file on an Linux system:sed -i 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml -
For example, use
sedto modify thenamespacefield in the YAML file on a macOS system:sed -i '' 's/namespace: openshift-marketplace/namespace: ibm-operators/g' catalog-sources.yaml
-
-
-
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
-
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 -
Determine the namespace where you want to install the catalog sources.
- If you are using the
openshift-marketplaceproject/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
namespacefield in the YAML file to match the project/namespace where you want to install the catalog sources.
- If you are using the
-
Apply the catalog source:
oc apply --filename catalog-sources.yaml
-
-
IBM Business Team Service catalog source definition
-
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 -
Apply the catalog source in
openshift-marketplacenamespace or the namespace that you created:oc apply -n <namespace> -f catalog-sources.yaml
-
-
Foundational services Apache Flink catalog source definition
-
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 -
Apply the catalog source in
openshift-marketplacenamespace or the namespace that you created:oc apply -n <namespace> -f catalog-sources.yaml
-
-
Foundational services OpenSearch catalog source definition
-
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 -
Apply the catalog source in
openshift-marketplacenamespace or the namespace that you created:oc apply -n <namespace> -f catalog-sources.yaml
-
-
Usage Metering Service catalog source definition
-
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 -
Apply the catalog source in
openshift-marketplacenamespace or the namespace that you created:oc apply -n <namespace> -f catalog-sources.yaml
-
Notes:
- Catalog sources are located in the Cloud Pak CASE HitHub repo. For example, all the IBM Cloud Pak foundational services operator versions are in the ibm-cp-common-services folder.
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.
-
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 -
Determine the namespace where you want to install the catalog sources.
- If you are using the
openshift-marketplaceproject/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
namespacefield in the YAML file to match the project/namespace where you want to install the catalog sources.-
For example, use
sedto modify thenamespacefield 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
sedto modify thenamespacefield 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
-
- If you are using the
-
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 -
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:
-
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 -
Determine the namespace where you want to install the catalog sources.
- If you are using the
openshift-marketplaceproject/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
namespacefield in the YAML file to match the project/namespace where you want to install the catalog sources.
- If you are using the
-
Apply the catalog sources for Integrated UI operator.
oc apply -f ~/.ibm-pak/data/mirror/$CASE_NAME/$CASE_VERSION/catalog-sources.yaml
-
-
What to do next
- If you are installing, see:
- If you are upgrading, see Upgrading foundational operators and services.