Checking the status of your cluster and CP4BA deployments

You can use the OpenShift® Container Platform (OCP) console and oc commands to check the status of your cluster and Cloud Pak for Business Automation (CP4BA) deployments.

View the status of resources in the OCP console

To see the overall status of the OCP cluster, go to the URL of the console:

https://console-openshift-console.apps.<mycluster.mydomain.com>/dashboards

Where the <mycluster.mydomain.com> is your own cluster name.

If you installed CP4BA in the namespace cp4ba, you can go to the following console URL:

https://console-openshift-console.apps.<mycluster.mydomain.com>.com/k8s/cluster/projects/cp4ba
  • In Cluster inventory, you can check the status of your nodes, pods, storage classes, and persistent volume claims (PVCs). Click any link to view the details of the resource. For example, click pods to go to the Details page and watch all the pods in the cp4ba namespace.
  • In Status, you can check the status of the cluster, control plane, and operators. You can see the OCP cluster alerts.
  • In Cluster utilization, you can check the status and available resources of CPU, memory, file system, network transfer, and pod count.
  • In Activity, you can see the OCP cluster events. OpenShift uses events to record information about the activities of the cluster and shows information about OpenShift components. Events are helpful for troubleshooting.

Get the CPU and memory usage

To show the percentage and absolute value of the CPU and memory usage on each node, run the following command:

oc adm top nodes

The output of this command provides the following information.

Name CPU (cores) CPU % Memory (bytes) Memory %
master0.mycluster.mydomain.com 1280 m 17 % 8662 Mi 59 %
master1.mycluster.mydomain.com 1184 m 15 % 7007 Mi 48 %
master2.mycluster.mydomain.com 1415 m 18 % 8710 Mi 59 %
worker0.mycluster.mydomain.com 1458 m 19 % 13316 Mi 91 %
worker1.mycluster.mydomain.com 2756 m 36 % 9984 Mi 68 %
worker2.mycluster.mydomain.com 1072 m 14 % 9854 Mi 67 %

Get information about OCP events

To see event information, run the following command:

oc get events
The OpenShift namespace can capture the following events:
  • Pod creation and deletion.
  • Nodes scheduled by pod.
  • Status of master and worker nodes.

Events are used for troubleshooting to obtain high-level information about faults and problems in the cluster. You can then use log files and other oc commands to further locate the problem.

Get information about your CP4BA deployments

To get the deployment type, run the following command:

oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.sc_deployment_type}'

To see which capabilities are included in a CP4BA deployment, run the following command:

oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.sc_deployment_patterns}'

To see which optional components are included in the deployment, run the following command:

oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.sc_optional_components}'

For CP4BA deployments with Content Cortex only, use the following queries to get the deployment type and the optional components:

oc get content -o=jsonpath='{.items[*].spec.content_deployment_type}'
oc get content -o=jsonpath='{.items[*].spec.content_optional_components}'

To get the list of secrets in the CP4BA namespace, run the following command:

oc get secret -n <namespace>

You can get the username and password stored in a secret. For example, the following commands get the information from ibm-fncm-secret.

oc get secret ibm-fncm-secret -o=jsonpath='{@.data.appLoginUsername}'
oc get secret ibm-fncm-secret -o=jsonpath='{@.data.appLoginPassword}'
Note: The output is in the Base64 format.

The following command gets the full content of ibm-fncm-secret,

oc get secret ibm-fncm-secret -o=jsonpath='{@}'

The following commands get the credentials for the admin user of the Identity and Management (IM) service, which is by default cpadmin.

oc get secret ibm-iam-bindinfo-platform-auth-idp-credentials \
-o jsonpath='{.data.admin_username}' | base64 --decode ; echo
oc get secret ibm-iam-bindinfo-platform-auth-idp-credentials \
-o 'jsonpath={.data.admin_password}'| base64 --decode ; echo

The following commands get the values of the storage class parameters used in the deployment.

oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.storage_configuration.sc_block_storage_classname}'
oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.storage_configuration.sc_dynamic_storage_classname}'
oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.storage_configuration.sc_slow_file_storage_classname}'
oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.storage_configuration.sc_medium_file_storage_classname}'
oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.storage_configuration.sc_fast_file_storage_classname}'

The following command gets information about whether FIPS is enabled.

oc get ICP4ACluster -o=jsonpath='{.items[*].spec.shared_configuration.enable_fips}'

Get information about the pods

To see the pods that you deployed in the cp4ba namespace, run the following command:

oc get pod -n cp4ba

If you run the following command, the results show the success of the deployment.

oc get pod n cp4ba |grep -E "-baw.*"

The results are shown in the following columns:

NAME READY STATUS RESTARTS AGE
icp4adeploy-instance1-baw-case-init-job--1-7mvx6 0/1 Completed 0 4 h 34 m
icp4adeploy-instance1-baw-content-init-job--1-9ws28 0/1 Completed 0 4 h 34 m
icp4adeploy-instance1-baw-db-init-job--1-mkglw 0/1 Completed 0 4 h 34 m
icp4adeploy-instance1-baw-db-init-job-pfs--1-rrf6n 0/1 Completed 0 4 h 34 m
icp4adeploy-instance1-baw-jms-0 1/1 Running 0 4 h 32 m
icp4adeploy-instance1-baw-ltpa--1-xz24v 0/1 Completed 0 4 h 34 m
icp4adeploy-instance1-baw-server-0 1/1 Running 0 4 h 26 m
icp4adeploy-instance1-baw-workplace-job--1-hjrtx 0/1 Completed 0 4 h 33 m

The READY column gives a result like 1/1 or 2/2 if the pod is running.

The following table shows the common states in the STATUS column and what they mean.
Status Meaning
Running The pod deployed successfully.
ImagePullBackOff Retrying to pull the image.
ErrImagePull Error pulling the image.
PodInitializing The pod is initializing.
ContainerCreating The container is being created.
CrashLoopBackOff The container exited and kubelet is restarting it.
CreateContainerError Failed to create container.
Completed The job completed successfully.
Error The pod failed to initialize.

To show the information for just one pod, for example icp4adeploy-instance1-baw-server-0, run the following command:

oc describe pod icp4adeploy-instance1-baw-server-0

To see the Workflow pod log, run the following command:

oc logs icp4adeploy-instance1-baw-server-0

To see the logs for all Workflow pods, connect to the baw containers inside your cluster by running the following command:

oc exec -it demo-instance1-baw-server-0 -- bash

Then, go to the /logs/application/ folder to find all the Workflow logs.

To download all the Workflow logs, run the command:

oc -c workflow-server cp demo-instance1-baw-server-0:logs/application/ .

Check the storage status

Run the following command to get all the PVs.

oc get pv

Run the following command to get more details of a PV.

oc describe pv <pvname>

Run the following command to get all the PVCs in the namespace cp4ba.

oc get pvc -n cp4ba

Make sure all the PVCs are in the Bound status. If not, run the following command to get more details of a PVC.

oc describe pvc <pvcname>

Dynamic volume provisioning allows storage volumes to be created on demand. The implementation of dynamic volume provisioning is based on the API object StorageClass. Run the following command to get the storage class name in the OCP cluster.

oc get storageclass

Run the following command to get more details of a storage class.

oc describe storageclass <storageclassname>

Get information about users

Run the following commands to get information about the usernames and passwords for your deployment.

oc get secret -n <namespace>
oc get secret ibm-fncm-secret -o=jsonpath='{@.data.appLoginUsername}'| base64 --decode ; echo
oc get secret ibm-fncm-secret -o=jsonpath='{@.data.appLoginPassword}'| base64 --decode ; echo
oc get secret ibm-fncm-secret -o=jsonpath='{@}'

Run the following commands to get the admin (cpadmin) credentials for the Identity Management (IM) service.

oc get secret ibm-iam-bindinfo-platform-auth-idp-credentials -o jsonpath='{.data.admin_username}' | base64 --decode ; echo
oc get secret ibm-iam-bindinfo-platform-auth-idp-credentials -o jsonpath='{.data.admin_password}' | base64 --decode ; echo

Get information about installed capabilities

Content Cortex

Run the following command to get the Content app version.

oc get Content -o=jsonpath='{.items[*].spec.appVersion}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get Content -o=jsonpath='{.items[*].spec.license}' -n <namespace>

Run the following command to see the status of the cmis, cdra, cds, cpds, css, cpe, ccsap, extshare, graphql, iccsap, ier, navigator, gitgatewayService, tm, and viewone components.

oc get Content -o=jsonpath='{.items[*].status.components.cmis}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.contentDesignerRepoAPI}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.contentDesignerService}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.contentProjectDeploymentService}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.css}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.cpe}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.extshare}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.graphql}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.iccsap}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.ier}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.navigator}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.gitgatewayService}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.tm}' -n <namespace>
oc get Content -o=jsonpath='{.items[*].status.components.viewone}' -n <namespace>

Run the following command to get the condition of the Content operator.

oc get Content -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoints of the components.

oc get Content -o=jsonpath='{.items[*].status.endpoints[*]}' -n <namespace>
Content Collector for SAP Applications
Note: If you installed a CP4BA Content Cortex deployment, then replace all mentions of ICP4ACluster in the example commands with Content.

Run the following command to see whether the license is accepted.

oc get icp4acluster -o=jsonpath='{.items[*].spec.ibm_license}' -n <namespace>

Run the following command to see the status of the component.

oc get icp4acluster -o=jsonpath='{.items[*].status.components.iccsap}' -n <namespace>

Run the following command to get the condition of the Content operator.

oc get Content -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following commands to get the endpoints of the component.

oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="ICCSAP Login URL")].uri}' -n <namespace>
oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="ICCSAP Plugin URL")].uri}' -n <namespace>
Automation Document Processing

Run the following command to get the DPE product version.

curl -k https://$(oc get route -n <namespace> cpd -o jsonpath="{.spec.host}")/adp/aca/ping

Run the following command to get the DPE operator version.

oc get icp4adpe -o=jsonpath='{.items[*].spec.appVersion}' -n <namespace>

Run the following command to see the status of the DPE component.

oc get icp4aclusters icp4adeploy -ojsonpath-as-json='{.status.components.ca}' -n <namespace>

Run the following command to get the condition of the DPE operator.

oc get icp4aclusters icp4adeploy -ojsonpath-as-json='{.status.components.ca.conditions}' -n <namespace>

Run the following command to get the external public API endpoint.

echo $(oc get route -n <namespace> cpd -o jsonpath="{.spec.host}"/adp/aca)
Decision Intelligence Client Managed Software

Run the following command to get the DICMS version.

oc get icp4aads -o=jsonpath='{.items[*].spec.version}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get icp4aads -o=jsonpath='{.items[*].spec.license}' -n <namespace>

Run the following command to see the status of the credential service, git service, parsing service, rest api, run service, and runtime components.

oc get icp4acluster -o=jsonpath='{.items[*].status.components.adsCredentialsService}' -n <namespace>
oc get icp4acluster -o=jsonpath='{.items[*].status.components.adsGitService}'
oc get icp4acluster -o=jsonpath='{.items[*].status.components.adsParsingService}'
oc get icp4acluster -o=jsonpath='{.items[*].status.components.adsRestApi}'
oc get icp4acluster -o=jsonpath='{.items[*].status.components.adsRunService}'
oc get icp4acluster -o=jsonpath='{.items[*].status.components.adsRuntimeService}'

Run the following command to get the condition of the DICMS operator.

oc get icp4aads -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoints of the designer (bastudio) and runtime components.

oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="BAStudio")].uri}' -n <namespace>
oc get icp4aads -o=jsonpath='{.items[*].status.endpoints[?(@.name=="adsRuntimeSwaggerUI")].uri}' -n <namespace>
Operational Decision Manager

Run the following command to get the ODM version.

oc get icp4aoperationaldecisionmanagers -o=jsonpath='{.items[*].spec.odm_product_semver}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get icp4aoperationaldecisionmanagers -o=jsonpath='{.items[*].spec.ibm_license}' -n <namespace>

Run the following command to see the status of the runtime, decision runner, and decision center components.

oc get icp4aoperationaldecisionmanagers -o=jsonpath='{.items[*].status.components.odmDecisionServerRuntimeDeployment}' -n <namespace>
oc get icp4aoperationaldecisionmanagers -o=jsonpath='{.items[*].status.components.odmDecisionRunnerDeployment}' -n <namespace>
oc get icp4aoperationaldecisionmanagers -o=jsonpath='{.items[*].status.components.odmDecisionCenterDeployment}' -n <namespace>

Run the following command to get the condition of the ODM operator.

oc get icp4aoperationaldecisionmanagers -o=jsonpath-as-json='{.items[*].status.conditions}'  -n <namespace>

Run the following command to get the endpoints of the components.

oc get icp4aoperationaldecisionmanagers -o=jsonpath-as-json='{.items[*].status.components.odmEndpoints}' -n <namespace>
Business Automation Workflow Authoring

Run the following command to get the BAW version.

oc get icp4acluster -o=jsonpath='{.items[*].spec.appVersion}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get icp4acluster -o=jsonpath='{.items[*].spec.ibm_license}' -n <namespace>

Run the following command to see the status of the bastudio component.

oc get icp4acluster -o=jsonpath='{.items[*].status.components.bastudio}' -n <namespace>

Run the following command to get the condition of the BAW operator.

oc get icp4acluster -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoints of the BAStudio, Workplace, Portal, Process Admin Console, Case Manager Builder, and Case Manager Client components.

oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="BAStudio")].uri}' -n <namespace>
oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="Workplace")].uri}' -n <namespace>
oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="Process portal")].uri}' -n <namespace>
oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="Business Automation Workflow Process Admin Console")].uri}' -n <namespace>
oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="Case Builder")].uri}' -n <namespace>
oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="Case client")].uri}' -n <namespace>
Business Automation Workflow and Business Automation Workstream

Run the following command to get the BAW version.

oc get workflowruntime -o=jsonpath='{.items[*].spec.app_version}’-n <namespace>

Run the following command to see whether the license is accepted.

oc get workflowruntime -o=jsonpath='{.items[*].spec.license}' -n <namespace>

Run the following command to see the status of the component.

oc get workflowruntime -o=jsonpath='{.items[*].status.components.baw}' -n <namespace>

Run the following command to get the condition of the BAW operator.

oc get workflowruntime -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoint of the component.

oc get workflowruntime -o=jsonpath='{.items[*].status.endpoints}' -n <namespace>
Business Automation Studio

Run the following command to get the BAS version.

oc get icp4acluster -o=jsonpath='{.items[*].spec.appVersion}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get icp4acluster -o=jsonpath='{.items[*].spec.ibm_license}' -n <namespace>

Run the following command to see the status of the component.

oc get icp4acluster -o=jsonpath='{.items[*].status.components.bastudio}' -n <namespace>

Run the following command to get the condition of the CP4BA operator.

oc get icp4acluster -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoint of the BAStudio component.

oc get icp4acluster -o=jsonpath='{.items[*].status.endpoints[?(@.name=="BAStudio")].uri}' -n <namespace>
Business Automation Insights

Run the following command to get the BAI version.

oc get insightsengine -o=jsonpath='{.items[*].spec.appVersion}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get insightsengine -o=jsonpath='{.items[*].spec.license}' -n <namespace>

Run the following command to see the status of the component.

oc get insightsengine -o=jsonpath='{.items[*].spec.bai_configuration}' -n <namespace>

Run the following command to get the condition of the CP4BA operator.

oc get insightsengine -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoint of the component.

oc get insightsengine -o=jsonpath='{.items[*].status]}' -n <namespace>
Workflow Process Services Runtime

Run the following command to get the WfPS version.

oc get wfpsruntime -o=jsonpath='{.items[*].spec.appVersion}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get wfpsruntime -o=jsonpath='{.items[*].spec.license}' -n <namespace>

Run the following command to see the status of the component.

oc get wfpsruntime -o=jsonpath='{.items[*].status.components.wfps}' -n <namespace>

Run the following command to get the condition of the WfPS operator.

oc get wfpsruntime -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoint of the component.

oc get wfpsruntime -o=jsonpath='{.items[*].status.endpoints}' -n <namespace>
Process Federation Service

Run the following command to get the PFS version.

oc get pfs -o=jsonpath='{.items[*].spec.appVersion}' -n <namespace>

Run the following command to see whether the license is accepted.

oc get pfs -o=jsonpath='{.items[*].spec.license}' -n <namespace>

Run the following command to see the status of the component.

oc get pfs -o=jsonpath='{.items[*].status.components.pfs}' -n <namespace>

Run the following command to get the condition of the PFS operator.

oc get pfs -o=jsonpath='{.items[*].status.conditions}' -n <namespace>

Run the following command to get the endpoint of the component.

oc get pfs -o=jsonpath='{.items[*].status.endpoints}' -n <namespace>

Get the Cloud Pak for Business Automation license file

The license file for Cloud Pak for Business Automation can be viewed on the cluster at the following URL:

https://<home>/integration/static/media/<license_title>.txt
To replace the placeholder values in the URL, use the following information:
  • <home> is the hostname of the CP4BA deployment. For example, cpd-namespace.acme.cloud.com. To get the value of <home>, use the OCP console or the OCP CLI.
    • In the OpenShift console, select the Project (namespace) where the CP4BA deployment is installed, then locate and click the cpd route.
    • Run the following command from the OCP CLI, replacing <namespace> with the namespace where the CP4BA deployment is installed:
      oc get route cpd -n <namespace>
  • <license_title> can take one of the following values:
    Table 1. Language license values
    Language License value
    Czech LA_cs
      LA_cs-reserved
    German LA_de
      LA_de-reserved
    Greek LA_el
      LA_el-reserved
    English LA_en
      LA_en-reserved
    Spanish LA_es
      LA_es-reserved
    French LA_fr
      LA_fr-reserved
    Italian LA_it
      LA_it-reserved
    Japanese LA_ja
      LA_ja-reserved
    Korean LA_ko
      LA_ko-reserved
    Lithuanian LA_lt
      LA_lt-reserved
    Polish LA_pl
      LA_pl-reserved
    Portuguese LA_pt
      LA_pt-reserved
    Russian LA_ru
      LA_ru-reserved
    Slovenian LA_sl
      LA_sl-reserved
    Turkish LA_tr
      LA_tr-reserved
    Portuguese LA_pt
      LA_pt-reserved
    Chinese LA_zh
      LA_zh-reserved
    Table 2. Other license values
    Other types Value
    Non-IBM® license non_ibm_license
      non_ibm_license-reserved
    Notices notices
      notices-reserved