Deploying the Platform UI with two storage classes

By default, the PlatformNavigator custom resource (IBM Cloud Pak Platform UI) uses only one RWX storage class for all volumes. However, you can configure the custom resource to use two different storage classes for the RWX and the RWO volumes.

You must be a cluster administrator to perform this task. For more information, see Roles and permissions.

Follow both procedures, in the order given:

Troubleshooting: For a list of possible errors and solutions when performing these steps, see Troubleshooting Platform UI deployment.

Creating a ConfigMap with two storage classes

Create a ConfigMap in the namespace where you plan to deploy the Platform UI. This object makes it possible for you to have separate storage classes for different components of the UI.

Apply the following YAML to create the configmap. Replace these placeholders:

  • <namespace>, with the namespace where you plan to install the Platform UI.

  • <storage-class-rwx>, with the RWX storage class you intend to use, for example, ibmc-file-gold-gid.

  • <storage-class-rwo>, with the RWO storage class you intend to use, for example, ibmc-block-gold.

kind: ConfigMap
apiVersion: v1
metadata:
  name: ibm-zen-config
  namespace: <namespace>
data:
  zen: |-
    storage_data:
      storageClass: <storage-class-rwx>
      zenCoreMetaDbStorageClass: <storage-class-rwo>
    scale_data:
      Usermgmt:
        name: usermgmt
        kind: Deployment
        container: usermgmt-container
        replicas: 1
        resources:
          limits:
            cpu: 400m
            memory: 512Mi
          requests:
            cpu: 200m
            memory: 256Mi
      ZenCoreMetaDb:
        name: zen-metastoredb
        kind: StatefulSet
        container: zen-metastoredb
        replicas: 3
        resources:
          limits:
            cpu: 500m
            memory: 2048Mi
          requests:
            cpu: 100m
            memory: 512Mi
      Nginx:
        name: ibm-nginx
        kind: Deployment
        container: ibm-nginx-container
        replicas: 1
        resources:
          limits:
            cpu: 400m
            memory: 512Mi
          requests:
            cpu: 200m
            memory: 256Mi
      ZenCore:
        name: zen-core
        kind: Deployment
        container: zen-core-container
        replicas: 1
        resources:
          limits:
            cpu: 400m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 256Mi
      ZenCoreApi:
        name: zen-core-api
        kind: Deployment
        container: zen-core-api-container
        replicas: 1
        resources:
          limits:
            cpu: 400m
            memory: 1024Mi
          requests:
            cpu: 100m
            memory: 256Mi
      ZenWatcher:
        name: zen-watcher
        kind: Deployment
        container: zen-watcher-container
        replicas: 1
        resources:
          limits:
            cpu: 1000m
            memory: 1024Mi
          requests:
            cpu: 100m
            memory: 256Mi
      ZenAudit:
        name: zen-audit
        kind: Deployment
        container: zen-audit-container
        replicas: 1
        resources:
          limits:
            cpu: 200m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 256Mi
      ZenWatchdog:
        name: zen-watchdog
        kind: Deployment
        container: zen-watchdog-container
        replicas: 1
        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 128Mi
      ZenDataSorcerer:
        name: zen-data-sorcerer
        kind: Deployment
        container: zen-data-sorcerer-container
        replicas: 1
        resources:
          limits:
            cpu: 100m
            memory: 256Mi
          requests:
            cpu: 30m
            memory: 128Mi
      DsxInfluxdb:
        name: dsx-influxdb
        kind: StatefulSet
        container: dsx-influxdb
        replicas: 1
        resources:
          limits:
            cpu: 400m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 256Mi

Install the Platform UI

Install the operator

If the IBM Cloud Pak for Integration operator is not installed, follow the procedure in Installing the operators by using the Red Hat OpenShift console.

Create the Platform UI

  1. Log into the OpenShift web console with your OpenShift cluster admin credentials.

  2. Change Project to the project (namespace) where the storage is configured. Click the arrow to expand the dropdown list and select your project name.

  3. In the navigation panel, click Operators > Installed Operators.

  4. In the Installed Operators panel, find and click IBM Cloud Pak for Integration.

  5. Click the Platform UI tab.

  6. Click Create PlatformNavigator. The Create panel opens, with the Form view selected.

  7. Click YAML view, and update the following values as indicated:

    • Add integration.ibm.com/reconcile-zen-configmap: "false" as an annotation in the custom resource. For example:

    apiVersion: integration.ibm.com/v1beta1
    kind: PlatformNavigator
    metadata:
      name: integration-quickstart
      namespace: integration
      annotations:
        integration.ibm.com/reconcile-zen-configmap: "false"
    spec:
    Troubleshooting: If this annotation value is not added, the operator will overwrite the ConfigMap created in the previous section. If that happens, delete the Platform UI, recreate the ConfigMap, and recreate the Platform UI instance.
    • Change spec.license.accept to true if you accept the Cloud Pak for Integration license agreement. For more information, see Licensing.

    • For spec.storage.class, specify an RWX storage class. This storage class is only used for the RWX volumes.

    If you need advanced configuration options, see Using the Platform UI.

  8. Click Create. Your instance of the Platform UI is added to the list of available instances in the current project (namespace).