Cloud Pak for Data

Cloud Pak for Data

Come for answers. Stay for best practices. All we’re missing is you.

 View Only

Exploring GitOps with Argo CD for IBM Software Hub

By Hongwei Jia posted Thu February 19, 2026 02:02 PM

  

Exploring GitOps with Argo CD for IBM Software Hub

                                                                                                                                                                                     

Authors: Hongwei Jia, Kaihua Zhou

Background

IBM Software Hub 5.3.0 introduces a major milestone - using Argo CD to install and upgrade IBM Software Hub and the services. This capability, part of the Software Hub Premium offering - bringing automation, scalability, and confidence to enterprise deployments. The article Deploying and Managing IBM Software Hub and its services using Argo CD – GA gives briefing to the delivered values and addressed changes of this powerful feature. In this article, I will introduce the implementation of this feature in more technical details.

Note:

There are few services on IBM Software Hub still not supporting Argo CD yet.

Architecture pattern

IBM Software Hub deployment using GitOps with dedicated ArgoCD instance has been certified in IBM Software Hub 5.3.0. This article will focus on exploring GitOps with dedicated ArgoCD instance for IBM Software Hub deployment.

The high-level architecture looks like below.

Note:

The GitOps deployment with the Hub-Spoke ArgoCD clusters may also work. However, we'll introduce it in a separate article later.

Implementation

In this article, I'll take the installation of IBM Software 5.3.0, DataStage and Orchestrator Pipeline in an internet connected environment as an example.

Pre-requisites

An Openshift cluster with valid storage classes
Openshift Gitops installed on the cluster.
Red Hat Cert Manager installed on the cluster.
Purchase IBM Software Hub Premium and download cpd-cli. It should allow access to cpd-cli manage create-argo-apps command for this deployment.
Deploy other dependency required by specific services (e.g. Openshift AI, Eventing operator)

Set up workstation

Install Podman and Git

yum install podman git -y

Installing the cpd-cli

Download Version 14.3.0 of the cpd-cli from the IBM repository on GitHub 

1.Download with wget

mkdir -p /opt/ibm/argocd
export ARGO_CD_DIR=/opt/ibm/argocd
cd $ARGO_CD_DIR wget https://github.com/IBM/cpd-cli/releases/download/v14.3.0_refresh_2/cpd-cli-linux-EE-14.3.0.tgz

2.Extract the tar file

tar -xvf cpd-cli-linux-EE-14.3.0.tgz

3.Make the cpd-cli executable from any directory.

export PATH=$ARGO_CD_DIR/cpd-cli-linux-EE-14.3.0-2819:$PATH

Validate with the following command

cpd-cli version

Creating an environment variables file

1.Create an environment variable file named cpd_vars.sh

You can follow this IBM Documentation Setting up installation environment variables for creating the environment variable file. The content looks like below.

# ------------------------------------------------------------------------------
# Cluster
# ------------------------------------------------------------------------------

export OCP_URL=<enter your Red Hat OpenShift Container Platform URL>
export OPENSHIFT_TYPE=<enter your deployment type>
export IMAGE_ARCH=<enter your cluster architecture>
export OCP_USERNAME=<enter your username>
export OCP_PASSWORD=<enter your password>
# export OCP_TOKEN=<enter your token>
export SERVER_ARGUMENTS="--server=${OCP_URL}"
export LOGIN_ARGUMENTS="--username=${OCP_USERNAME} --password=${OCP_PASSWORD}"
export CPDM_OC_LOGIN="cpd-cli manage login-to-ocp ${SERVER_ARGUMENTS} ${LOGIN_ARGUMENTS}"
export OC_LOGIN="oc login ${OCP_URL} ${LOGIN_ARGUMENTS}"


# ------------------------------------------------------------------------------
# Projects
# ------------------------------------------------------------------------------

export PROJECT_LICENSE_SERVICE=ibm-licensing
export PROJECT_IBM_EVENTS=ibm-knative-events
export PROJECT_CPD_INST_OPERATORS=<enter your IBM Software Hub operator project>
export PROJECT_CPD_INST_OPERANDS=<enter your IBM SoftwareHub operand project>


# ------------------------------------------------------------------------------
# Storage
# ------------------------------------------------------------------------------

export STG_CLASS_BLOCK=ocs-storagecluster-ceph-rbd
export STG_CLASS_FILE=ocs-storagecluster-cephfs

# ------------------------------------------------------------------------------ # IBM Entitled Registry # ------------------------------------------------------------------------------ export IBM_ENTITLEMENT_KEY=<enter your IBM entitlement API key> export IMAGE_PULL_SECRET=ibm-entitlement-key export IMAGE_PULL_CREDENTIALS=$(echo -n "cp:$IBM_ENTITLEMENT_KEY" | base64 -w 0) export IMAGE_PULL_PREFIX=icr.io # export IMAGE_PULL_PREFIX=${PRIVATE_REGISTRY_LOCATION} # ------------------------------------------------------------------------------ # Components # ------------------------------------------------------------------------------ export VERSION=5.3.0 export COMPONENTS=ibm-licensing,cpfs,cpd_platform,datastage_ent_plus,ws_pipelines # ------------------------------------------------------------------------------ # ArgoCD # ------------------------------------------------------------------------------ export OLM_UTILS_IMAGE=cp.icr.io/cp/cpd/olm-utils-premium-v4:5.3.0 export APP_SUFFIX="-my-app" #this string is added to all applications created in this doc export PROJECT_ARGOCD=openshift-gitops export HELM_REPO_URL=https://raw.githubusercontent.com/IBM/charts/refs/heads/master/repo/ibm-helm

2.Source the environment variable

source cpd_vars.sh

Start up olm-utils container with Premium

podman login cp.icr.io -u cp -p $IBM_ENTITLEMENT_KEY
cpd-cli manage restart-container

Once the above steps completed, we are ready to start the deployment of IBM Software Hub and services using Argo CD.  We'll continue the implementation procedures in another particle (Part 2).

0 comments
29 views

Permalink