Installing the IBM Software Hub Control Center software

To install IBM® Software Hub Control Center (Control Center), you must install the required operators and custom resources.

Who needs to complete this task?

Cluster administrator A cluster administrator must complete this task.

When do you need to complete this task?

One-time setup You must complete this task to install Control Center.

Before you begin

Best practice: You can run the commands in this task exactly as written if you use set up environment variables for IBM Software Hub Control Center. For instructions, see Setting up environment variables for IBM Software Hub Control Center

In addition, ensure that you source the environment variables before you run the commands in this task.

About this task

Use the setup-control-center command to install the required operators and custom resources for Control Center.

Procedure

  1. Log the cpd-cli in to the Red Hat® OpenShift® Container Platform cluster:
    ${CONTROL_CPDM_OC_LOGIN}
    Remember: CONTROL_CPDM_OC_LOGIN is an alias for the cpd-cli manage login-to-ocp command when you are connecting to the Control Center cluster.
  2. Install the required components for Control Center:
    cpd-cli manage setup-control-center \
    --release=${VERSION} \
    --license_acceptance=true \
    --operator_ns=${CONTROL_PROJECT_OPERATORS} \
    --operand_ns=${CONTROL_PROJECT_OPERANDS} \
    --block_storage_class=${CONTROL_STG_CLASS_BLOCK}
    Wait for the cpd-cli to return the following message before proceeding to the next step:
    [SUCCESS] ... The setup-control-center command ran successfully.
  3. Confirm that the status of the operands is Completed:
    cpd-cli manage get-cr-status \
    --cpd_instance_ns=${CONTROL_PROJECT_OPERANDS}
  4. Log in to Red Hat OpenShift Container Platform as a cluster administrator.
    ${OC_LOGIN}
    Remember: OC_LOGIN is an alias for the oc login command.
  5. Check the health of the resources in the operators project:
    cpd-cli health operators \
    --operator_ns=${CONTROL_PROJECT_OPERATORS} \
    --control_plane_ns=${CONTROL_PROJECT_OPERANDS}

    Confirm that the health check report returns the expected results:

    Test What the test checks Expected result
    Pod Healthcheck For pods in the operators project, the status of each required pod is Running. [SUCCESS]
    Pod Usage Healthcheck For pods in the operators project, the resource use for each pod is within the CPU and memory limits. [SUCCESS]
    Cluster Service Versions Healthcheck For cluster service versions (CSVs) in the operators project, the phase of each CSV is Succeeded. [SUCCESS]
    Catalog Source Healthcheck For catalog sources in the operators project, the last observed state of each catalog source is Ready. [SUCCESS]
    Install Plan Healthcheck For operators in the operators project, the install plan approval for each operator is Automatic. [SUCCESS]
    Subscriptions Healthchec For subscriptions in the operators project, there is an installed CSV for each subscription. [SUCCESS]
    Persistent Volume Claim Healthcheck For persistent volume claims (PVCs) in the operators project, each PVC is bound.
    Note: There should not be any PVC in the operators project, so the test should be skipped.
    [SKIP...]
    Deployment Healthcheck For deployments in the operators project, each deployment has the desired number of replicas. [SUCCESS]
    Namespace Scopes Healthcheck For the NamespaceScope operator in the operators project, the projects that are specified in the members list exist. [SUCCESS]
    Stateful Set Healthcheck For stateful sets in the operators project, the stateful sets have the desired number of replicas.
    Note: There should not be any stateful sets in the operators project, so the test should be skipped.
    [SKIP...]
    Common Services Healthcheck For the common-service commonservice custom resource in the operators project, the phase of the custom resource is Succeeded. [SUCCESS]
    Custom Resource Healthcheck For any other custom resources in the operators project, the phase of each custom resource is Succeeded.
    Note: There should not be any other custom resources in the operators project, so the test should be skipped.
    [SKIP...]
    Operand Requests Healthcheck For operand requests in the operators project, the phase of each operand request is Running, [SUCCESS]
  6. Check the health of the resources in the operands project:
    cpd-cli health operands \
    --control_plane_ns=${CONTROL_PROJECT_OPERANDS}
    Confirm that the health check report returns the expected results:
    Test What the test checks Expected result
    Pod Healthcheck For pods in the operands project, the status of each pod is Running. [SUCCESS]
    Pod Usage Healthcheck For pods in the operands project, the resource use for each pod is within the CPU and memory limits. [SUCCESS]
    EDB Cluster Healthcheck For EDB Postgres clusters in the operands project, the status of each cluster is Cluster in healthy state. [SUCCESS]
    Persistent Volume Claim Healthcheck For persistent volume claims (PVCs) in the operands project, each PVC is bound. [SUCCESS]
    Deployment Healthcheck For deployments in the operands project, each deployment has the desired number of replicas. [SUCCESS]
    Stateful Set Healthcheck For stateful sets in the operands project, the stateful sets have the desired number of replicas. [SUCCESS]
    Common Services Healthcheck For the common-service commonservice custom resource in the operands project, the phase of the custom resource is Succeeded. [SUCCESS]
    Operand Requests Healthcheck For operand requests in the operands project, the phase of each operand request is Running. [SUCCESS]
    Monitor Events Healthcheck The platform monitors are not generating any Critical events. [SUCCESS]
    Custom Resource Healthcheck For custom resources in the operands project, the phase of each custom resource is Succeeded. [SUCCESS]
    Platform Healthcheck That the pods for required platform microservices are Running. [SUCCESS]
  7. Update your Control Center environment variables script:
    1. Add the following section to the script:
      
      # ------------------------------------------------------------------------------
      # Control Center route
      # ------------------------------------------------------------------------------
      
      export CONTROL_CENTER_ROUTE=<control-center-route>
    2. Replace <control-center-route> with the value returned by the following command:
      oc get route cpd -n ${CONTROL_PROJECT_OPERANDS} -ojsonpath={.spec.host}"{'\n'}"

      The route has the format:

      cpd-<operands-project-name>.apps.<OCP-default-domain>
    3. Save your changes to the environment variables script.
    4. Confirm that the script does not contain any errors. For example, if you named the script control_center_vars.sh, run:
      bash ./control_center_vars.sh
  8. Source the environment variables. For example, if you named the script control_center_vars.sh, run:
    source ./control_center_vars.sh
  9. Get the URL and default credentials of the Control Center web client:
    cpd-cli manage get-cpd-instance-details \
    --cpd_instance_ns=${CONTROL_PROJECT_OPERANDS} \
    --get_admin_initial_credentials=true

What to do next

Now that you've installed Control Center, you're ready to complete Setting up an OAuth client for IBM Software Hub Control Center.