Setting up installation environment variables

The commands for installing and upgrading IBM® Software Hub use variables with the format ${VARIABLE_NAME}. You can create a script to automatically export the appropriate values as environment variables before you run the installation commands. After you source the script, you will be able to copy most install and upgrade commands from the documentation and run them without making any changes.

Installation phase
  • You are not here. Setting up a client workstation
  • You are not here. Setting up a cluster
  • You are here icon. Collecting required information
  • You are not here. Preparing to run installs in a restricted network
  • You are not here. Preparing to run installs from a private container registry
  • You are not here. Preparing the cluster for IBM Software Hub
  • You are not here. Preparing to install an instance of IBM Software Hub
  • You are not here. Installing an instance of IBM Software Hub
  • You are not here. Setting up the control plane
  • You are not here. Installing solutions and services
Who needs to complete this task?

Operations team The IBM Software Hub operations team should work with the cluster administrator to compile information about the cluster where IBM Software Hub will be installed.

This information should be shared with any users who will run installation or upgrade commands that require information about your environment, such as information about your Red Hat® OpenShift® Container Platform cluster or your private container registry.

When do you need to complete this task?

Repeat as needed Create at least one environment variable script. You might need to create multiple scripts depending on your use case.

Before you begin

Before you create an environment variables script, consider the use case that you need to support:

Repeatable deployments across clusters
If you want to create repeatable deployments across clusters, you can:
Option Recommended if you want to... Additional considerations
Re-use the same script Improve the consistency of deployments across your environments. You must ensure that you modify the Cluster variables before you run an installation.
Create multiple scripts Avoid modifying the environment variables script before you run an installation. You must ensure that a change in one script is populated to the related scripts, if appropriate. For example, if you update the value of the PRIVATE_REGISTRY_PULL_PASSWORD variable in one script, you must update the variable in any related scripts.

In addition, clearly name each script to ensure that you source the correct variables before you run installation or upgrade commands.

Multiple deployments on the same cluster
If you want to create multiple deployments on the same cluster, you can:
Option Recommended if you want to... Additional considerations
Re-use the same script Create standardized deployments. You must ensure that you update the Projects variables before you run the installation.
Create multiple scripts
  • Deploy different services in each instance of IBM Software Hub.
  • Avoid modifying the environment variables script before you run an installation.
Clearly name each script to ensure that you source the correct variables before you run installation or upgrade commands.
Tip: If multiple people are working together to complete the installation, you should share a copy of the appropriate files with each user. Each user can edit the scripts to supply their own credentials and source the script on their own workstation.

Security considerations

It is recommended that you prevent other users from reading the contents of the environment variable script by running chmod 700. However, if you have concerns about storing your credentials in this file, you can:

  • Enter the credentials directly instead of using the environment variable in the commands.
  • Manually export the credentials before you run the commands.

The environment variables associated with credentials are identified with the following icon and tag:

Icon Credentials

Creating an environment variables file

  1. Copy the following example to a text editor on your local file system:
    #===============================================================================
    # IBM Software Hub installation variables
    #===============================================================================
    
    # ------------------------------------------------------------------------------
    # Client workstation 
    # ------------------------------------------------------------------------------
    # Set the following variables if you want to override the default behavior of the IBM Software Hub CLI.
    #
    # To export these variables, you must uncomment each command in this section.
    
    # export CPD_CLI_MANAGE_WORKSPACE=<enter a fully qualified directory>
    # export OLM_UTILS_LAUNCH_ARGS=<enter launch arguments>
    
    
    # ------------------------------------------------------------------------------
    # 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 LOGIN_ARGUMENTS="--token=${OCP_TOKEN}"
    export CPDM_OC_LOGIN="cpd-cli manage login-to-ocp ${SERVER_ARGUMENTS} ${LOGIN_ARGUMENTS}"
    export OC_LOGIN="oc login ${SERVER_ARGUMENTS} ${LOGIN_ARGUMENTS}"
    
    
    # ------------------------------------------------------------------------------
    # Proxy server
    # ------------------------------------------------------------------------------
    
    # export PROXY_HOST=<enter your proxy server hostname>
    # export PROXY_PORT=<enter your proxy server port number>
    # export PROXY_USER=<enter your proxy server username>
    # export PROXY_PASSWORD=<enter your proxy server password>
    # export NO_PROXY_LIST=<a comma-separated list of domain names>
    
    
    # ------------------------------------------------------------------------------
    # Projects
    # ------------------------------------------------------------------------------
    
    export PROJECT_LICENSE_SERVICE=<enter your License Service project>
    export PROJECT_SCHEDULING_SERVICE=<enter your scheduling service project>
    export PROJECT_SCHEDULING_BR_SVC=<enter your scheduling service BR orchestration service project>
    # export PROJECT_IBM_EVENTS=<enter your IBM Events Operator project>
    # export PROJECT_PRIVILEGED_MONITORING_SERVICE=<enter your privileged monitoring service project
    export PROJECT_CPD_INST_OPERATORS=<enter your IBM Software Hub operator project>
    export PROJECT_CPD_INST_OPERANDS=<enter your IBM Software Hub operand project>
    # export PROJECT_CPD_INSTANCE_TETHERED=<enter your tethered project>
    # export PROJECT_CPD_INSTANCE_TETHERED_LIST=<a comma-separated list of tethered projects>
    export PROJECT_INST_BR_SVC=${PROJECT_CPD_INST_OPERATORS}-br-svc
    
    
    # ------------------------------------------------------------------------------
    # Backup and restore 
    # ------------------------------------------------------------------------------
    
    export BACKUP_NAME=online-backup-$(date '+%Y%m%d-%H%M%S')
    export RESTORE_NAME=${BACKUP_NAME}-restore
    export OADP_PROJECT=<enter your OADP project>
    # export OADP_VERSION=<OADP-version>
    export NODE_AGENT_POD_CPU_LIMIT=500m
    export KOPIA_POD_CPU_LIMIT=1
    # export PROJECT_FUSION=ibm-spectrum-fusion-ns
    # export PROJECT_PX_ADMIN_NS=No default.
    # export PROJECT_NETAPP_TRIDENT_PROTECT=trident-protect
    # export NETAPP_TRIDENT_PROTECT_APP_VAULT=<AppVault name>
    export BR_OPERATOR_JOB_SA=bros-job-sa
    export BR_OPERATOR_SA=bros-sa
    # export PROJECT_INST_BR_SVC_NEW=${PROJECT_CPD_INST_OPERATORS_NEW}-br-svc
    # export PROJECT_CPD_INST_OPERATORS_NEW=<project-name>
    # export OPERATOR_MAPPING=${PROJECT_CPD_INST_OPERATORS}:${PROJECT_CPD_INST_OPERATORS_NEW}
    # export PROJECT_CPD_INST_OPERANDS_NEW=<project-name>
    # export OPERAND_MAPPING=${PROJECT_CPD_INST_OPERANDS}:${PROJECT_CPD_INST_OPERANDS_NEW}
    # export PROJECT_CPD_INSTANCE_TETHERED_1=<project-name>
    # export PROJECT_CPD_INSTANCE_TETHERED_1_NEW=<project-name>
    # export TETHER_MAPPING_1=${PROJECT_CPD_INSTANCE_TETHERED_1}:${PROJECT_CPD_INSTANCE_TETHERED_1_NEW}
    # export PROJECT_CPD_INSTANCE_TETHERED_2=<project-name>
    # export PROJECT_CPD_INSTANCE_TETHERED_2_NEW=<project-name>
    # export TETHER_MAPPING_2=${PROJECT_CPD_INSTANCE_TETHERED_2}:${PROJECT_CPD_INSTANCE_TETHERED_2_NEW}
    # export PROJECT_CPD_INSTANCE_TETHERED_LIST_NEW=${PROJECT_CPD_INSTANCE_TETHERED_1_NEW},${PROJECT_CPD_INSTANCE_TETHERED_2_NEW}
    # export RESTORE_PROJECT_MAPPING="${OPERATOR_MAPPING},${OPERAND_MAPPING}"
    # export RESTORE_PROJECT_MAPPING="${OPERATOR_MAPPING},${OPERAND_MAPPING},${TETHER_MAPPING_1},${TETHER_MAPPING_2}"
    
    
    # ------------------------------------------------------------------------------
    # Storage
    # ------------------------------------------------------------------------------
    
    export STG_CLASS_BLOCK=<RWO-storage-class-name>
    export STG_CLASS_FILE=<RWX-storage-class-name>
    
    
    # ------------------------------------------------------------------------------
    # S3 Object Storage
    # ------------------------------------------------------------------------------
    
    export S3_URL=<S3-url>
    export REGION=<S3-region>
    export BUCKET_NAME=<bucket-name>
    export BUCKET_PREFIX=<bucket-prefix>
    export ACCESS_KEY_ID=<access-key-ID>
    export SECRET_ACCESS_KEY=<access-key-secret>
    
    
    # ------------------------------------------------------------------------------
    # IBM Entitled Registry
    # ------------------------------------------------------------------------------
    
    export IBM_ENTITLEMENT_KEY=<enter your IBM entitlement API key>
    
    
    # ------------------------------------------------------------------------------
    # Private container registry
    # ------------------------------------------------------------------------------
    # Set the following variables if you mirror images to a private container registry.
    #
    # To export these variables, you must uncomment each command in this section.
    
    # export PRIVATE_REGISTRY_LOCATION=<enter the location of your private container registry>
    # export PRIVATE_REGISTRY_PUSH_USER=<enter the username of a user that can push to the registry>
    # export PRIVATE_REGISTRY_PUSH_PASSWORD=<enter the password of the user that can push to the registry>
    # export PRIVATE_REGISTRY_PULL_USER=<enter the username of a user that can pull from the registry>
    # export PRIVATE_REGISTRY_PULL_PASSWORD=<enter the password of the user that can pull from the registry>
    
    
    # ------------------------------------------------------------------------------
    # Image pull configuration
    # ------------------------------------------------------------------------------
    
    export IMAGE_PULL_SECRET=<pull-secret-name>
    # export IMAGE_PULL_CREDENTIALS=$(echo -n "cp:$IBM_ENTITLEMENT_KEY" | base64 -w 0)
    # export IMAGE_PULL_CREDENTIALS=$(echo -n "$PRIVATE_REGISTRY_PULL_USER:$PRIVATE_REGISTRY_PULL_PASSWORD" | base64 -w 0)
    # export IMAGE_PULL_PREFIX=icr.io
    # export IMAGE_PULL_PREFIX=${PRIVATE_REGISTRY_LOCATION}
    
    
    # ------------------------------------------------------------------------------
    # IBM Software Hub version
    # ------------------------------------------------------------------------------
    
    export VERSION=5.4.0
    export PATCH_ID=latest
    export OLM_UTILS_IMAGE=icr.io/cpopen/cpd/olm-utils-v4:${VERSION}
    
    
    # ------------------------------------------------------------------------------
    # Components
    # ------------------------------------------------------------------------------
    
    export COMPONENTS=ibm-licensing,scheduler,cpd_platform,br_orchestration
    # export COMPONENTS_TO_SKIP=<component-ID-1>,<component-ID-2>
    # export IMAGE_GROUPS=<image-group-1>,<image-group-2>
  2. Update each section in the script for your environment. See the following sections to learn about the variables and valid values in each section of the script:
  3. Save the file as a shell script. For example, save the file as cpd_vars.sh.
  4. Confirm that the script does not contain any errors. For example, if you named the script cpd_vars.sh, run:
    bash ./cpd_vars.sh
  5. If you stored passwords in the file, prevent others from reading the file. For example, if you named the script cpd_vars.sh, run:
    chmod 700 cpd_vars.sh

Sourcing the environment variables

Save a copy of the script to your workstation and run it from a bash prompt before you the run installation and upgrade commands. The script exports the environment variables to your command-line session.

Important: You must re-run the script each time you open a new bash prompt.
  1. Change to the directory where you saved the script.
  2. Source the environment variables. For example, if you named the script cpd_vars.sh, run:
    source ./cpd_vars.sh

Client workstation

The variables in the Client workstation section of the script specify information about how the cpd-cli manage plug-in runs on the client workstation.

Variable Description
CPD_CLI_MANAGE_WORKSPACE The directory where you want to store files, such as CASE files, that are used by cpd-cli manage commands.

The cpd-cli creates a directory named work inside of this directory.

By default, the first time you run a cpd-cli manage command, the cpd-cli automatically creates the cpd-cli-workspace/olm-utils-workspace/work directory.

The location of the directory depends on several factors:

  • If you made the cpd-cli executable from any directory, the directory is created in the directory where you run the cpd-cli commands.
  • If you did not make the cpd-cli executable from any directory, the directory is created in the directory where the cpd-cli is installed.

You can set the CPD_CLI_MANAGE_WORKSPACE environment variable to override the default location.

The CPD_CLI_MANAGE_WORKSPACE environment variable is especially useful if you made the cpd-cli executable from any directory. When you set the environment variable, it ensures that the files are located in one directory.

To use the CPD_CLI_MANAGE_WORKSPACE variable, you must uncomment the export command in the environment variables file.

Default value
No default value. The directory is created based on the factors described in the preceding text.
Valid values
The fully qualified path where you want the cpd-cli to create the work directory. For example, if you specify /root/cpd-cli/, the cpd-cli manage plug-in stores files in the /root/cpd-cli/work directory.
OLM_UTILS_LAUNCH_ARGS A set of arguments that you pass to the olm-utils runtime container.

You can use the OLM_UTILS_LAUNCH_ARGS environment variable to mount certificates that the cpd-cli must use in the cpd-cli container.

Mount CA certificates
Important: If you use a proxy server to mirror images or to download CASE packages, use the OLM_UTILS_LAUNCH_ARGS environment variable to add the CA certificates to enable the olm-utils container to trust connections through the proxy server. For more information, see Cannot access CASE packages when using a proxy server.

You can mount CA certificates if you need to reach an external HTTPS endpoint that uses a self-signed certificate.

Tip: Typically the CA certificates are in the /etc/pki/ca-trust directory on the workstation. If you need additional information on adding certificates to a workstation, run:
man update-ca-trust
Determine the correct argument for your environment:
  • If the certificates on the client workstation are in the /etc/pki/ca-trust directory, the argument is:

    " -v /etc/pki/ca-trust:/etc/pki/ca-trust"

  • If the certificates on the client workstation are in a different directory, replace <ca-loc> with the appropriate location on the client workstation:

    " -v <ca-loc>:/etc/pki/ca-trust"

Mount Kubernetes certificates
You can mount Kubernetes certificates if you need to use a certificate to connect to the Kubernetes API server.

The argument depends on the location of the certificates on the client workstation. Replace <k8-loc> with the appropriate location on the client workstation:

" -v <k8-loc>:/etc/k8scert --env K8S_AUTH_SSL_CA_CERT=/etc/k8scert"

To use the OLM_UTILS_LAUNCH_ARGS variable, you must uncomment the export command in the environment variables file.

Default value
No default value.
Valid values
The valid values depend on the arguments that you need to pass to the OLM_UTILS_LAUNCH_ARGS environment variable.
  • To pass CA certificates, specify:

    " -v <ca-loc>:/etc/pki/ca-trust"

  • To pass Kubernetes certificates, specify:

    " -v <k8-loc>:/etc/k8scert --env K8S_AUTH_SSL_CA_CERT=/etc/k8scert"

  • To pass both CA certificates and Kubernetes certificates, specify:

    " -v <ca-loc>:/etc/pki/ca-trust -v <k8-loc>:/etc/k8scert --env K8S_AUTH_SSL_CA_CERT=/etc/k8scert"

Cluster

The variables in the Cluster section of the script specify information about your Red Hat OpenShift Container Platform cluster.

Variable Description
OCP_URL The URL of the Red Hat OpenShift Container Platform server. For example, https://openshift1.example.com:8443.
Default value
There is no default value.
Valid values
Specify the URL of your Red Hat OpenShift Container Platform server.
OPENSHIFT_TYPE The type of Red Hat OpenShift Container Platform cluster that you are running.
Default value
self-managed
Valid values
aro
Specify aro if you are running Azure Red Hat OpenShift (ARO), the managed OpenShift offering on Microsoft Azure.
roks
Specify roks if you are running Red Hat OpenShift on IBM Cloud, the managed OpenShift offering on IBM Cloud.
rosa
Specify rosa if you are running Red Hat OpenShift Service on AWS (ROSA), the managed OpenShift offering on Amazon Web Services.
self-managed
Specify self-managed if you are running self-managed OpenShift on:
  • On-premises infrastructure
  • AWS infrastructure
  • IBM Cloud infrastructure
  • Microsoft Azure infrastructure
IMAGE_ARCH The architecture of your Red Hat OpenShift Container Platform Cluster hardware.
Default value
There is no default value.
Valid values
amd64
Specify amd64 if your Red Hat OpenShift Container Platform cluster runs on x86-64 hardware.
ppc64le
Specify ppc64le if your Red Hat OpenShift Container Platform cluster runs on Power hardware.
s390x
Specify s390x if your Red Hat OpenShift Container Platform cluster runs on Z hardware.
OCP_USERNAME Icon Credentials The username that you use to authenticate to your cluster. You must have sufficient privileges to complete each installation or upgrade task.

To use the OCP_USERNAME variable, you must uncomment the export command in the environment variables file.

OCP_PASSWORD Icon Credentials The password that you use to authenticate to your cluster.

To use the OCP_PASSWORD variable, you must uncomment the export command in the environment variables file.

OCP_TOKEN

Icon Credentials You can use a token instead of your user name and password to log in to your Red Hat OpenShift Container Platform cluster.

You can get your token from the Red Hat OpenShift Container Platform web console. From the username drop-down menu, select Copy login command. When prompted, click Display Token.

To use the OCP_TOKEN variable, you must uncomment the export command in the environment variables file.

SERVER_ARGUMENTS The server argument to pass to log in to the cluster.

Do not modify this export command.

The SERVER_ARGUMENTS environment variable depends on the OCP_URL environment variable.

LOGIN_ARGUMENTS The credential arguments to pass to log in to the cluster.
The LOGIN_ARGUMENTS environment variable depends on the credentials that you use to log in.
A username and password
If you specify a username and password, the LOGIN_ARGUMENTS environment variable depends on the following environment variables:
  • OCP_USERNAME
  • OCP_PASSWORD

If you are working from the sample environment variables script, uncomment the export LOGIN_ARGUMENTS entry that includes the username and password entries.

Do not modify this export command.

A token
If you specify a token, the LOGIN_ARGUMENTS environment variable depends on the OCP_TOKEN environment variable.

If you are working from the sample environment variables script, uncomment the LOGIN_ARGUMENTS entry that includes the token entry.

Do not modify this export command.

CPDM_OC_LOGIN Shortcut for the cpd-cli manage login-to-ocp command.

Do not modify this export command.

The CPDM_OC_LOGIN environment variable depends on the following environment variables:
  • SERVER_ARGUMENTS
  • LOGIN_ARGUMENTS
OC_LOGIN Shortcut for the oc login command.

Do not modify this export command.

The OC_LOGIN environment variable depends on the following environment variables:
  • OCP_URL
  • LOGIN_ARGUMENTS

Proxy server

The variables in the Proxy server section are required only if you use HTTP proxy to manage inbound traffic to and outbound traffic from your Red Hat OpenShift Container Platform cluster.

Variable Description
PROXY_HOST The hostname or IP address of your proxy server.

To use the PROXY_HOST variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify the hostname or IP address of your HTTP proxy server
PROXY_PORT The port number to connect to on your proxy server.

Specify this variable only if your cluster-wide proxy configuration requires the port number.

To use the PROXY_PORT variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify the port number for your HTTP proxy server
PROXY_USER Icon Credentials The name of a user that can authenticate to the proxy server.

Specify this variable only if your proxy server requires authentication.

To use the PROXY_USER variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify a username.
PROXY_PASSWORD Icon Credentials The password of the user that can authenticate to the proxy server.

Specify this variable only if your proxy server requires authentication.

To use the PROXY_PASSWORD variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify the password associated with the username.
NO_PROXY_LIST A comma-separated list of domain names that should not be routed through the proxy server.

Specify this variable only if you want to prevent specific domain names from being routed to your proxy server.

To use the NO_PROXY_LIST variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify a comma-separated list of domain names.
Required values
watsonx™ Orchestrate users only. If you plan to use a proxy server on an instance of IBM Software Hub with watsonx Orchestrate, ensure that you exclude the following Kubernetes Service DNS names from the proxy configuration:
  • ibm-lh-lakehouse-wo-milvus-milvus-svc.${PROJECT_CPD_INST_OPERANDS}.svc
  • internal-nginx-svc.${PROJECT_CPD_INST_OPERANDS}.svc.cluster.local
For example:
export NO_PROXY_LIST="ibm-lh-lakehouse-wo-milvus-milvus-svc.${PROJECT_CPD_INST_OPERANDS}.svc,internal-nginx-svc.${PROJECT_CPD_INST_OPERANDS}.svc.cluster.local"

Projects

The variables in the Projects section of the script specify where the components that comprise IBM Software Hub are installed.

Need more information about projects? See:
Variable Description
PROJECT_LICENSE_SERVICE The project for the Licensing Service operator.
Default value
ibm-licensing
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate the License Service with other software.

PROJECT_SCHEDULING_SERVICE The project for the scheduling service.
Default value
There is no default value.
Valid values
You can use any Red Hat OpenShift project; however, it is strongly recommended that you use ibm-cpd-scheduler.

Do not co-locate the scheduling service with other software.

PROJECT_SCHEDULING_BR_SVC The project for the IBM Software Hub Backup Restore Orchestration service for the scheduling service.
Default value
There is no default value.
Valid values
You can use any Red Hat OpenShift project; however, it is strongly recommended that you use ibm-cpd-scheduler-br-svc.

Do not co-locate the Backup Restore Orchestration service with other software. For example, do not use the same project for the Backup Restore Orchestration service for the scheduling service and for the Backup Restore Orchestration service for an instance of IBM Software Hub.

PROJECT_IBM_EVENTS
watsonx Assistant or watsonx Orchestrate users only. The project where you want to install the IBM Events Operator or the project where a cluster-wide instance of the IBM Events Operator is already installed.

To use the PROJECT_IBM_EVENTS variable, you must uncomment the export command in the environment variables file.

Default value
ibm-knative-events
Valid values
Use either:
  • ibm-knative-events

    Use ibm-knative-events if you do not have an existing cluster-scoped instance of the IBM Events Operator.

  • The project where a cluster-scoped instance of the IBM Events Operator is installed.
PROJECT_PRIVILEGED_MONITORING_SERVICE
The OpenShift project for the IBM Software Hub privileged monitoring service.

The privileged monitoring service is optional, but provides additional monitoring and logging information for IBM Software Hub.

The privileged monitoring service is installed once on the cluster and can provide monitoring and information to multiple instances of IBM Software Hub.

To use the PROJECT_PRIVILEGED_MONITORING_SERVICE variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
You can use any Red Hat OpenShift project; however, it is strongly recommended that you use ibm-cpd-privileged.

Do not co-locate the privileged monitoring service with other software.

PROJECT_CPD_INST_OPERATORS The project where you want to install the operators for this instance of IBM Software Hub.
Default value
There is no default value.
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate the IBM Software Hub operators with other software.

PROJECT_CPD_INST_OPERANDS The project for the IBM Software Hub control plane and services.
Default value
There is no default value.
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate the control plane or services with other software.

PROJECT_CPD_INSTANCE_TETHERED A project that is tethered to the project where the IBM Software Hub control plane is installed.

This variable is required only if you plan to install a service that supports deploying service instances into a tethered project.

To use the PROJECT_CPD_INSTANCE_TETHERED variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate other software in the project.

PROJECT_CPD_INSTANCE_TETHERED_LIST
A comma-separated list of projects that are tethered to the project where the IBM Software Hub control plane is installed.

This variable is required only if you plan to install a service that supports deploying service instances into a tethered project.

To use the PROJECT_CPD_INSTANCE_TETHERED_LIST variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
A comma-separated list of project names. For example:

cpd-instance-1-t1,cpd-instance-1-t2,cpd-instance-1-t3

PROJECT_INST_BR_SVC The project for the IBM Software Hub Backup Restore Orchestration service for an instance of IBM Software Hub.
Default value
${PROJECT_CPD_INST_OPERATORS}-br-svc
Valid values
You can use any Red Hat OpenShift project; however, it is strongly recommended that you use ${PROJECT_CPD_INST_OPERATORS}-br-svc.

Do not co-locate the Backup Restore Orchestration service with other software. For example, do not use the same project for the Backup Restore Orchestration service for an instance of IBM Software Hub and for the Backup Restore Orchestration service for the scheduling service.

Backup and restore

The variables in the Backup and restore section of the script specify information about:
  • The OpenShift API for Data Protection (OADP) operator
  • Third-party backup and restore utilities, if applicable
Need more information about back up and restore? See:
Variable Description
BACKUP_NAME The name to use when you create a backup.
Default value
online-backup-$(date '+%Y%m%d-%H%M%S')
Valid values
The name must:
  • Start and end with an alphanumeric character
  • Contain only alphanumeric characters, hyphens (-), underscores (_) or periods (.)
  • Contain no more than 60 characters
RESTORE_NAME The name to use when you restore IBM Software Hub from a backup.
Default value
BACKUP_NAME-restore
Valid value
The name must:
  • Start and end with an alphanumeric character
  • Contain only alphanumeric characters, hyphens (-), underscores (_) or periods (.)
  • Contain no more than 60 characters
OADP_PROJECT The OpenShift project where you want to install the OADP operator.

If the OADP is already installed on your cluster, specify the project where it is installed.

Default value
The default value depends on how you install the OADP operator.
  • If you install the operator through Red Hat OpenShift Container Platform, the default value is openshift-adp.
  • If you install the operator by running the cpd-cli oadp install command, you can choose where the operator is installed. However, it is strongly recommended that you use openshift-adp.
  • If the operator is installed by the IBM Fusion backup and restore service, the default value is ibm-backup-restore.
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate other software in the project.

OADP_VERSION The version of the OADP operator to install.
The following versions of OADP are supported:
  • Version 1.4
  • Version 1.5

You must install a version of the OpenShift API for Data Protection (OADP) operator that is compatible with the version of Red Hat OpenShift Container Platform that you are running.

Specify this option if you plan to use one of the following back up and restore utilities:
  • OpenShift API for Data Protection backup and restore utility
  • Portworx disaster recovery (asynchronous data replication)
  • NetApp Trident Protect

To use the OADP_VERSION variable, you must uncomment the export command in the environment variables file.

Default value
There is no default.
Valid values
Specify the version with the following format: v<major-release>.<minor-release>.<patch-release>.

For example: v1.5.4

NODE_AGENT_POD_CPU_LIMIT The CPU limit for node-agent pods.
Specify this option if you plan to use one of the following back up and restore utilities:
  • OpenShift API for Data Protection backup and restore utility
  • Portworx disaster recovery (asynchronous data replication)
  • NetApp Trident Protect
Default value
500m
Valid values

Specify an integer or fixed-point number. Include one of the following quantity suffixes: k, M, G, T, P, E. (Alternatively, you can specify a power-of-two equivalent: ki, Mi, Gi, Ti, Pi, Ei.

Specify 0 (zero) to remove the limit.

Examples: 0, 100m, 256Mi, 1Gi

KOPIA_POD_CPU_LIMIT

The CPU limit for Kopia pods.

Specify this option if you plan to use one of the following back up and restore utilities:
  • OpenShift API for Data Protection backup and restore utility
  • Portworx disaster recovery (asynchronous data replication)
  • NetApp Trident Protect
Default value
1
Valid values

Specify an integer or fixed-point number. Include one of the following quantity suffixes: k, M, G, T, P, E. (Alternatively, you can specify a power-of-two equivalent: ki, Mi, Gi, Ti, Pi, Ei.

Specify 0 (zero) to remove the limit.

Examples: 0, 100m, 256Mi, 1Gi

PROJECT_FUSION The OpenShift project where you want to install IBM Fusion.

This variable is required only if you plan to use the IBM Fusion Backup & Restore service to back up your IBM Software Hub installation.

To use the PROJECT_FUSION variable, you must uncomment the export command in the environment variables file.

Default value
ibm-spectrum-fusion-ns
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate IBM Fusion with other software.

PROJECT_PX_ADMIN_NS The OpenShift project where you want to install Portworx Enterprise.

This variable is required only if you plan to use Portworx asynchronous data replication to back up your IBM Software Hub installation.

To use the PROJECT_PX_ADMIN_NS variable, you must uncomment the export command in the environment variables file.

Default value
No default.
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate Portworx Enterprise with other software.

PROJECT_NETAPP_TRIDENT_PROTECT The OpenShift project where you want to install NetApp Trident Protect.

This variable is required only if you plan to use NetApp Trident Protect to back up your IBM Software Hub installation.

To use the PROJECT_NETAPP_TRIDENT_PROTECT variable, you must uncomment the export command in the environment variables file.

Default value
trident-protect
Valid values
You can use any Red Hat OpenShift project.

Do not co-locate NetApp Trident Protect with other software.

NETAPP_TRIDENT_PROTECT_APP_VAULT The name of the NetApp Trident Protect AppVault where you want to store the the backups for an instance of IBM Software Hub.

This variable is required only if you plan to use NetApp Trident Protect to back up your IBM Software Hub installation.

To use the NETAPP_TRIDENT_PROTECT_APP_VAULT variable, you must uncomment the export command in the environment variables file.

Default value
No default.
Valid values
The name must be a valid NetApp Trident Protect AppVault name.
BR_OPERATOR_JOB_SA The name to use service account for jobs that are managed by the IBM Software Hub Backup Restore orchestration service.
Default value
bros-job-sa
Valid values
The name must be a valid DNS subdomain name. The name must:
  • Start and end with an alphanumeric character
  • Contain only lowercase alphanumeric characters, hyphens (-), or periods (.)
  • Contain no more than 235 characters
BR_OPERATOR_SA The name to use for the service account for the IBM Software Hub Backup Restore orchestration service.
Default value
bros-sa
Valid values
The name must be a valid DNS subdomain name. The name must:
  • Start and end with an alphanumeric character
  • Contain only lowercase alphanumeric characters, hyphens (-), or periods (.)
  • Contain no more than 235 characters
PROJECT_INST_BR_SVC_NEW If you want to restore IBM Software Hub to a different project, specify the name of the project where you want to restore the Backup Restore Orchestration service for the instance in the new project.
Default value
${PROJECT_CPD_INST_OPERATORS_NEW}-br-svc
Valid values
You can use any Red Hat OpenShift project; however, it is strongly recommended that you use ${PROJECT_CPD_INST_OPERATORS_NEW}-br-svc.

Do not co-locate the Backup Restore Orchestration service with other software. For example, do not use the same project for the Backup Restore Orchestration service for the existing instance and the restored instance.

PROJECT_CPD_INST_OPERATORS_NEW If you want to restore IBM Software Hub to a different project, specify the name of the project where you want to restore the IBM Software Hub operators.

To use the PROJECT_CPD_INST_OPERATORS_NEW variable, you must uncomment the export command in the environment variables file.

Default value
No default.
Valid values
Specify a valid name for a project.

Ensure that the project does not already exist on the cluster. If you specify an existing project, you will encounter errors.

OPERATOR_MAPPING For restore to a different project, map the existing operator project to the project where you want to restore the operators.
To use the OPERATOR_MAPPING variable, you must uncomment the export command in the environment variables file.
Default value
${PROJECT_CPD_INST_OPERATORS}:${PROJECT_CPD_INST_OPERATORS_NEW}
Valid values
Do not modify the default value.
PROJECT_CPD_INST_OPERANDS_NEW If you want to restore IBM Software Hub to a different project, specify the name of the project where you want to restore the IBM Software Hub operands.

To use the PROJECT_CPD_INST_OPERANDS_NEW variable, you must uncomment the export command in the environment variables file.

Default value
No default.
Valid values
Specify a valid name for a project.

Ensure that the project does not already exist on the cluster. If you specify an existing project, you will encounter errors.

OPERAND_MAPPING For restore to a different project, map the existing operands project to the project where you want to restore the operands.

To use the OPERAND_MAPPING variable, you must uncomment the export command in the environment variables file.

Default value
${PROJECT_CPD_INST_OPERANDS}:${PROJECT_CPD_INST_OPERANDS_NEW}
Valid values
Do not modify the default value.
PROJECT_CPD_INSTANCE_TETHERED_1_NEW If you want to restore IBM Software Hub to a different project, specify the name of the project where you want to restore the resources that are in a tethered project.
To use the PROJECT_CPD_INSTANCE_TETHERED_1_NEW variable, you must uncomment the export command in the environment variables file.
Default value
No default.
Valid values
Specify a valid name for a project.

Ensure that the project does not already exist on the cluster. If you specify an existing project, you will encounter errors.

TETHER_MAPPING_1 For restore to a different project, map the existing tethered project to the project where you want to restore the resources in the tethered project.

To use the TETHER_MAPPING_1 variable, you must uncomment the export command in the environment variables file.

Default value
${PROJECT_CPD_INSTANCE_TETHERED_1}:${PROJECT_CPD_INSTANCE_TETHERED_1_NEW}
Valid values
Do not modify the default value.
PROJECT_CPD_INSTANCE_TETHERED_2_NEW If you want to restore IBM Software Hub to a different project, specify the name of the project where you want to restore the resources that are in a tethered project.

To use the PROJECT_CPD_INSTANCE_TETHERED_2_NEW variable, you must uncomment the export command in the environment variables file.

If you have additional tethered projects, you can create additional PROJECT_CPD_INSTANCE_TETHERED_N_NEW environment variables.

Default value
No default.
Valid values
Specify a valid name for a project.

Ensure that the project does not already exist on the cluster. If you specify an existing project, you will encounter errors.

TETHER_MAPPING_2 For restore to a different project, map the existing tethered project to the project where you want to restore the resources in the tethered project.

To use the TETHER_MAPPING_2 variable, you must uncomment the export command in the environment variables file.

If you have additional tethered projects, you can create additional TETHER_MAPPING_N

Default value
${PROJECT_CPD_INSTANCE_TETHERED_2}:${PROJECT_CPD_INSTANCE_TETHERED_2_NEW}
Valid values
Do not modify the default value.
PROJECT_CPD_INSTANCE_TETHERED_LIST_NEW A list of projects that you want to tether to the project where you want to restore IBM Software Hub when you restore IBM Software Hub to a different project.

To use the PROJECT_CPD_INSTANCE_TETHERED_LIST_NEW variable, you must uncomment the export command in the environment variables file.

Default value
${PROJECT_CPD_INSTANCE_TETHERED_1_NEW},${PROJECT_CPD_INSTANCE_TETHERED_2_NEW}
Valid values
Adjust the list of tethered projects based on the number of tethered projects associated with the instance.
RESTORE_PROJECT_MAPPING A list of projects that IBM Software Hub will be restored to.

The RESTORE_PROJECT_MAPPING environment variable depends on whether your instance includes tethered projects.

Instances without tethered projects
If your instance does not include tethered projects, uncomment the RESTORE_PROJECT_MAPPING entry that includes the following mappings:
  • ${OPERATOR_MAPPING}
  • ${OPERAND_MAPPING}
Instances with tethered projects
If your instance includes tethered projects, uncomment the RESTORE_PROJECT_MAPPING entry that includes the following mappings:
  • ${OPERATOR_MAPPING}
  • ${OPERAND_MAPPING}
  • ${TETHER_MAPPING_1}
  • ${TETHER_MAPPING_2}

You can adjust the number of TETHER_MAPPING_N variables based on the number of tethered projects that are associated with the instance.

Storage

The variables in the Storage section of the script specify the storage classes that the installation should use.

Variable Description
STG_CLASS_BLOCK The name of a block storage class on the cluster. The storage class must be associated with a supported storage option.
Default value
There is no default value.
Valid values
Specify the name of a storage class that points to block storage (storage that supports ReadWriteOnce, also called RWO, access).
The following list provides the recommended storage classes for the supported storage options. If you use different storage classes, identify an equivalent storage class on the cluster.
  • OpenShift Data Foundation: ocs-storagecluster-ceph-rbd
  • IBM Fusion Data Foundation: ocs-storagecluster-ceph-rbd
  • IBM Fusion Global Data Platform: Either of the following storage classes, depending on your environment:
    • ibm-spectrum-scale-sc
    • ibm-storage-fusion-cp-sc
  • IBM Storage Scale Container Native: ibm-spectrum-scale-sc
  • Portworx: portworx-metastoredb-sc
  • NFS: managed-nfs-storage
  • Amazon Elastic Block Store: Either of the following storage classes, depending on your environment:
    • gp2-csi
    • gp3-csi
  • Nutanix: nutanix-volume
STG_CLASS_FILE The name of a file storage class on the cluster. The storage class must be associated with a supported storage option.
Default value
There is no default value.
Valid values
Specify the name of a storage class that points to file storage (storage that supports ReadWriteMany, also called RWX, access).
The following list provides the recommended storage classes for the supported storage options. If you use different storage classes, identify an equivalent storage class on the cluster.
  • OpenShift Data Foundation: ocs-storagecluster-cephfs
  • IBM Fusion Data Foundation: ocs-storagecluster-cephfs
  • IBM Fusion Global Data Platform: Either of the following storage classes, depending on your environment:
    • ibm-spectrum-scale-sc
    • ibm-storage-fusion-cp-sc
  • IBM Storage Scale Container Native: ibm-spectrum-scale-sc
  • Portworx: portworx-rwx-gp3-sc
  • NFS: managed-nfs-storage
  • Amazon Elastic File System: efs-nfs-client
  • Nutanix: nutanix-file

S3 object storage

The variables in the S3 object storage section of the script specify information about the S3 object storage where you will store your backups.

Need more information about back up and restore? See:
Variable Description
S3_URL The URL of the S3-compatible object storage where you plan to store your IBM Software Hub backups.

If you are using the default port (80 for HTTP or 443 for HTTPS), omit the port from the URL.

Default value
There is no default value.
Valid values
Specify the URL of the object store.
  • If you are using publicly hosted S3 object storage, enter the public endpoint.
  • If you are using a private instance, enter the IP address or private DNS URL.

Review the documentation for your S3 object storage for information on valid URLs.

REGION The region where the S3 bucket is located.
Default value
There is no default value.
Valid values
Specify the region of the object store. For example:
  • us-south
  • us-gov-east-1
  • ap-northeast-2
  • me-central-1

Review the documentation for your S3 object storage for a list of valid regions.

BUCKET_NAME The name of the object storage bucket where you plan to store your IBM Software Hub backups.
Default value
There is no default value.
Valid values
Specify the name of an existing bucket on your S3 object storage.
BUCKET_PREFIX The bucket prefix that you want to use for IBM Software Hub backups.
Default value
There is no default value.
Valid values
Specify the name of an existing bucket prefix on your S3 object storage.
ACCESS_KEY_ID Icon Credentials The access key ID for your S3-compatible object storage.
Default value
There is no default value.
Valid values
Specify the access key ID for your S3 object storage. The user associated with the access key must have write access to the object store.
SECRET_ACCESS_KEY Icon Credentials The access key secret for your S3-compatble object storage.
Default value
There is no default value.
Valid values
Specify the access key secret for your S3 object storage. The user associated with the access key must have write access to the object store.

IBM Entitled Registry

The variables in the IBM Entitled Registry section of the script enable you to connect to the IBM Entitled Registry and access the IBM Software Hub software images that you are entitled to.

Depending on whether you pull images from the IBM Entitled Registry or from a private container registry, the variables might also be used to configure the following pull secrets:
  • The global image pull secret (for components that use OLM)
  • The namespace-scoped image pull secrets (for components that use Helm)

Need more information about the IBM Entitled Registry? See Obtaining your IBM entitlement API key for IBM Software Hub.

Variable Description
IBM_ENTITLEMENT_KEY Icon Credentials The entitlement API key that is associated with your My IBM account.
Default value
There is no default value.
Valid values
Specify your IBM entitlement API key.

Private container registry

It is strongly recommended that you use a private container registry. The variables in the Private container registry section are required only if you mirror images to a private container registry.

The variables in the Private container registry section of the script enable you to:
  • Mirror images from the IBM Entitled Registry to the private container registry.
  • Pull images from the private container registry

Need more information about private container registries? See Private container registry requirements.

Variable What to specify
PRIVATE_REGISTRY_LOCATION The location of the private container registry.

To use the PRIVATE_REGISTRY_LOCATION variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify the hostname or IP address of the private container registry. Keep the following guidance in mind:
  • Do not specify http:// or https://.
  • If the registry is running on port 80 or 443 you can omit the port. However, if the registry is running on a different port, you must specify the port.
PRIVATE_REGISTRY_PUSH_USER Icon Credentials The username of a user who has the required privileges to push images to the private container registry.

To use the PRIVATE_REGISTRY_PUSH_USER variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify a username.
PRIVATE_REGISTRY_PUSH_PASSWORD Icon Credentials The password of the user who has the required privileges to push images to the private container registry.

To use the PRIVATE_REGISTRY_PUSH_PASSWORD variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify the password associated with the username.
PRIVATE_REGISTRY_PULL_USER Icon Credentials The username of a user who has the required privileges to pull images from the private container registry.

To use the PRIVATE_REGISTRY_PULL_USER variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify a username.
PRIVATE_REGISTRY_PULL_PASSWORD Icon Credentials The password of the user who has the required privileges to pull images from the private container registry.

To use the PRIVATE_REGISTRY_PULL_PASSWORD variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Specify the password associated with the username.

Image pull configuration

The variable in the Image pull configuration section specifies how components should pull images.

Variable Description
IMAGE_PULL_SECRET The name that you want to use for the secret that will contain the base64 encoded credentials for pulling images.
Default value
There is no default value.
Valid values
Specify a Kubernetes compliant name that contains only lowercase alphanumeric characters, hyphens (-) or periods (.).

The name must start and end with an alphanumeric character.

IMAGE_PULL_CREDENTIALS Icon Credentials The base64 encoded username and password to use to pull images.
The IMAGE_PULL_CREDENTIALS environment variable depends on the repository that you pull images from:
IBM Entitled Registry
If you pull images from the IBM Entitled Registry, the IMAGE_PULL_CREDENTIALS environment variable depends on the following environment variable:
  • IBM_ENTITLEMENT_KEY

If you are working from the sample environment variables script, uncomment the export IMAGE_PULL_CREDENTIALS entry that includes the IBM Entitlement API key.

Do not modify this export command.

Private container registry
If you pull images from a private container registry, the IMAGE_PULL_CREDENTIALS environment variable depends on the following environment variable:
  • PRIVATE_REGISTRY_PULL_USER
  • PRIVATE_REGISTRY_PULL_PASSWORD

If you are working from the sample environment variables script, uncomment the export IMAGE_PULL_CREDENTIALS entry that includes the private registry user and password.

Do not modify this export command.

IMAGE_PULL_PREFIX The location to pull images from.
The IMAGE_PULL_PREFIX environment variable depends on the repository that you pull images from:
IBM Entitled Registry
If you pull images from the IBM Entitled Registry, the IMAGE_PULL_PREFIX environment variable points to icr.io.

If you are working from the sample environment variables script, uncomment the export IMAGE_PULL_PREFIX entry that includes icr.io.

Do not modify this export command.

Private container registry
If you pull images from a private container registry, the IMAGE_PULL_PREFIX environment variable depends on the following environment variable:
  • PRIVATE_REGISTRY_LOCATION

If you are working from the sample environment variables script, uncomment the export IMAGE_PULL_PREFIX entry that includes the private registry location.

Do not modify this export command.

IBM Software Hub version

The variable in the IBM Software Hub version section specifies which version of IBM Software Hub to install or upgrade to.

Remember: All of the components in an instance must be installed at the same version.
Variable Description
VERSION The version of the IBM Software Hub software to install.
Default value
5.4.0
Valid values
  • 5.4.0
PATCH_ID The ID of the patch that you want to apply to your environment.
Important: You must install the latest patch to be eligible for support.

By default, the latest patch is installed. However, you can choose a specific patch to apply to your environment. For example, if you have multiple instances of IBM Software Hub, you can override the default behavior to ensure that the same patch is applied to all instances. For example, if you validated a specific patch on your test environment, you can override the default behavior to apply the same patch to your production environment.

Default value
latest
Valid values
You can specify:
  • latest
  • A specific patch ID.
    • For 5.4.0, specify 0
OLM_UTILS_IMAGE The fully qualified location of the olm-utils image.
Default value
icr.io/cpopen/cpd/olm-utils-v4:${VERSION}
Valid values
You can specify either of the following values:
  • icr.io/cpopen/cpd/olm-utils-v4:${VERSION}
  • cp.icr.io/cp/cpd/olm-utils-premium-v4:${VERSION}

    Premium Use this image if you purchased IBM Software Hub Premium Cartridge or IBM Software Hub AI Assistant Cartridge.

Important: If your cluster pulls images from a private container registry, you can update this environment variable after you mirror the image to your private container registry.

Components

The variables in the Components section help you manage the software that is associated with an instance of IBM Software Hub.

For example, you can use the COMPONENTS environment variable to ensure that you specify the same components when you:
  • Mirror images to a private container registry
  • Create the operators for an instance of IBM Software Hub
  • Install the software for an instance of IBM Software Hub
Variable Description
COMPONENTS A comma separated list of the components that you want to install or upgrade.
Default value
By default, the list includes the required and recommended components:
  • ibm-licensing
  • scheduler
  • cpd_platform
  • br_orchestration
The components are separated by commas without spaces. For example:
ibm-licensing,scheduler...
You can remove the scheduler component if you don't plan to use the features that the scheduling service provides.
The scheduling service is required if you plan to use:

If none of the preceding scenarios applies to you, the scheduling service is optional but strongly recommended.

Important: Don't remove any other components from the COMPONENTS environment variable. These components are required for all installations.
Valid values
Review the guidance in Determining which components to install to determine which service component IDs to specify.
COMPONENTS_TO_SKIP A comma-separated list of components that are already installed on the cluster with cluster-scoped operators.

If a component has a cluster-scoped operator, you can use this environment variable to prevent the cpd-cli from creating a namespace-scoped instance of the operator.

For example, if you have a cluster-scoped instance of the Cloud Native PostgreSQL operator, you can prevent the cpd-cli from creating a namespace-scoped operator if another component has a dependency on Cloud Native PostgreSQL.

To use the COMPONENTS_TO_SKIP variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Set this environment variable only if you have cluster-scoped operators for one or more of the components in Shared components (automatically installed dependencies).
IMAGE_GROUPS
A comma-separated list of models or optional images to mirror to your private container registry.

If a component has models or optional images that are not mirrored by default, you must explicitly mirror those images to your private container registry.

For example, if you plan to install watsonx.ai™, you must choose which models to mirror to your private container registry.

To use the IMAGE_GROUPS variable, you must uncomment the export command in the environment variables file.

Default value
There is no default value.
Valid values
Review the guidance in Determining which models and optional images to mirror to your private container registry to determine which services have models or optional images that you need to mirror.

What to do next

Now that you've set up your installation environment variables, you're ready to complete Preparing to run IBM Software Hub installs from a private container registry.