Platform Navigator deployment

The Platform Navigator is a user interface for the IBM Cloud Pak® for Integration that allows the user to deploy and manage instances of the integration capabilities from a central location. Within the Platform Navigator, you can directly access Dashboard tools such as Logging and Monitoring, and you can also upgrade, edit, or delete existing deployments.

This page includes procedures for deployment, configuration, and basic usage of the Platform Navigator. If you need to upgrade, see Upgrading Platform Navigator (Component deployment interface).

Figure 1. Platform Navigator
Alt text

The Cloud Pak for Integration can be deployed using the Red Hat OpenShift console, or the Red Hat OpenShift CLI.

Prerequisites

These tasks must be performed by an Integration Specialist (or Cluster Administrator) before you deploy the Platform Navigator:

  • Install the OpenShift CLI tool. This is required for troubleshooting and useful for other tasks. For more information, see Getting started with the CLI in the Red Hat OpenShift documentation.
  • Create a project for this instance, if it does not already exist.
  • Create one or more storage classes.
    • Select a storage provider that supports ReadWriteMany (RWX) and allows read and write access to non-root users. Supported storage providers include ibmc-file-gold-gid, OpenShift Container Storage, Spectrum, and Portworx. For additional details about storage support and configuration, see Storage.
  • If you intend to run software from the IBM Entitled Registry, create a pull secret in the namespace containing an entitlement key, if it does not exist already. See See Applying your entitlement key.

You may install the Platform Navigator operator for all projects, or in only the project where you need to deploy the Platform Navigator. See Installing operators for more information.

Deploying the Platform Navigator with the OpenShift console

To configure and deploy the Platform Navigator:

  1. Open the OpenShift web console.
  2. In the navigation panel, click Operators > Installed Operators.
  3. Click IBM Cloud Pak for Integration Platform Navigator.
  4. Click Platform Navigator.
  5. Click Create PlatformNavigator. Make sure the Form view is selected. You will use the form to configure Platform Navigator.
  6. In the form, change Project to your project name.
    Note: Project is the same as the Kubernetes term namespace. You may encounter both terms in the UI or in the documentation. They are interchangeable.
  7. Accept the Cloud Pak for Integration license agreement. Click the expand icon for License. Then:
    • Set License Accept to true.
    • For License LI, see Licensing to determine the license. Next, click the expand icon and select the license from the drop-down list.
  8. Click Create.

    Your instance of Platform Navigator is added to the list of instances in the current project (namespace).

Deploying Platform Navigator with the OpenShift CLI

  1. Log into your cluster using cloudctl login or oc login.
  2. Create a PlatformNavigator YAML file.

    For example, you could create a file called platformnavigator.yaml with the following configuration:

    apiVersion: integration.ibm.com/v1beta1
    kind: PlatformNavigator
    metadata:
        name: cp4i-navigator
        namespace: cp4i
    spec:
        license:
            accept: false
            license: L-RJON-BUVMQX
        mqDashboard: true
        replicas: 3
        version: 2020.4.1
  3. Change spec.license.accept to true if you accept the Cloud Pak for Integration license agreement.
  4. Change any other configuration details as required, for example, update metadata.namespace to your target namespace.
  5. Apply the YAML file to the cluster using the oc command:
    oc apply -f platformnavigator.yaml

The Platform Navigator is created. Run the oc command to monitor its progress.

Getting the admin password

During the first installation of a Cloud Pak for Integration capability or runtime, an admin password is generated and stored in the ibm-common-services namespace. The admin password allows you to log in and access Cloud Pak for Integration.

You can use the OpenShift Console or CLI to obtain the admin password.

Getting the admin password with the OpenShift Console

To get the admin password in the OpenShift Console UI:

  1. Log into the OpenShift cluster as a Cluster Administrator..
  2. To switch to the ibm-common-services project, click the arrow to expand the Project list.
  3. In the navigation menu, click Workloads to expand the selections, then select Secrets. Open the platform-auth-idp-credentials secret.
  4. At the bottom of the Details page, in the Data section, click Reveal Values to get and copy the value for admin_password.
  5. Save the password to use when logging in to Platform Navigator.

Getting the admin password with the CLI

To get the admin password with the CLI:

  1. Log into the OpenShift cluster as a Cluster Administrator..

  2. Click the user icon in the UI and select Copy Login Command.

  3. Use the command provided by OpenShift to log into the cluster from the command line.

  4. Run the following command to extract the password from the secret:

    oc extract secret/platform-auth-idp-credentials -n ibm-common-services --to=-
  5. Save the password to use when logging in to Platform Navigator.

Logging in to Platform Navigator

When the Platform Navigator status changes to Ready, you can access the Platform Navigator UI. You can do so using the OpenShift web console or the OpenShift CLI.

Logging in using the OpenShift web console

  1. Open the OpenShift web console.
  2. In the navigation panel, click Operators > Installed Operators.
  3. In the Installed Operators pane, click IBM Cloud Pak for Integration Platform Navigator.
  4. Click Platform Navigator.
  5. Click the installed instance link from the list, then click the link under Platform Navigator UI.Selecting the Platform Navigator UI endpoint
  6. At the login screen, select Default authentication.
  7. For Username, enter admin. For Password, enter the IBM admin password you obtained in Getting the admin password. Click Log in.

Logging in using the OpenShift CLI

  1. Log into your cluster using cloudctl login, or oc login.
  2. List the routes in the namespace where the navigator is deployed:
    oc get routes --namespace=namespace
  3. Alternatively, find the ui endpoint on the Platform Navigator instance under the status section:
    oc describe PlatformNavigator name --namespace=namespace

Logging out

Logging out is a two-step process:

  1. Log out of Cloud Pak Foundation: To fully log out of the Platform Navigator, select Common Services from the three-line menu at the top of the page, which opens the Cloud Pak Foundation UI. Next, from the User menu at the top-right of the page, click Logout.
  2. Log out of Cloud Pak for Integration: Click the first tab (where Platform Navigator is running), and from the User menu, select Logout.

Uninstalling

Uninstall your Platform Navigator by deleting your PlatformNavigator custom resource. This can be done in the RedHat OpenShift Console UI or RedHat OpenShift CLI.

Deleting your PlatformNavigator CR using the OpenShift console

  1. To delete your PlatformNavigator CR using the OpenShift UI, navigate to Operators > Installed Operators in the OpenShift Console. Ensure you have selected the namespace that contains the Platform Navigator you are uninstalling.
  2. Click IBM Cloud Pak for Integration Platform Navigator.
  3. Click the Platform Navigator tab.
  4. Click the overflow menu to the right of the Platform Navigator table row you want to uninstall.
  5. Click Delete Platform Navigator.
  6. Click Delete in the confirmation dialog box.

Your Platform Navigator is now uninstalled.

Deleting your PlatformNavigator CR using the CLI

To delete your PlatformNavigator CR using the oc CLI, run:

oc delete platformnavigator <instance-name> --namespace=<namespace>

Custom resource values

The following table lists the configurable parameters and default values for the custom resource.

Parameter Description Default
apiVersion The API version that identifies which schema is used for this Platform Navigator
kind The resource type PlatformNavigator
metadata.name A unique short name by which the Platform Navigator can be identified integration-navigator
metadata.namespace The namespace (project) in which the integration server is installed
spec.license.accept An indication of whether the license should be accepted. Valid vales are true and false. To install, this value must be set to true. false
spec.mqDashboard Whether the MQ Grafana dashboard will be deployed as part of this Platform Navigator release. true
spec.replicas The number of replica pods to run for each deployment. 2
spec.version The Platform Navigator product version. Specify a channel or a fully qualified version. For more details about available values, see [versions-matrix]. The latest available version of the Platform Navigator.
spec.nodeSelector Configures on which nodes the pods will run. Specify each nodeSelector as a key/value pair in the format nodeSelectorKey: nodeSelectorValue. Empty
spec.labels Specify one or more custom labels (as classification metadata) to apply to each pod that is created during deployment. Specify each label as a key/value pair in the format labelKey: labelValue. The custom labels that you specify will be merged with the default (generated) labels. If duplicate label keys are detected, the custom value overwrites the default value. Empty
spec.annotations Specify one or more custom annotations (as arbitrary metadata) to apply to each pod that is created during deployment. Specify each annotation as a key/value pair in the format annotationKey: annotationValue. The custom annotations that you specify will be merged with the default (generated) annotations. If duplicate annotation keys are detected, the custom value overwrites the default value. Empty
spec.resources This section defines all the the minimum and upper limits of resources allocated for running the container. For CPU values, specify integer, fractional (for example, 0.5), or millicore values (for example, 100m, equivalent to 0.1 core). For memory values, specify integers with one of these suffixes: E, P, T, G, M, K, or specify on eof these power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. Empty. Operator handles the default resource values.
spec.template This section allows users to customize the kubernetes resources deployed by the operator. The configuration found within the block will be superimposed on the reconciled K8S resource the operator would have generated had the template block not existed, following the logic defined for a strategic merge patch in the kubernetes documentation. Empty
spec.requestIbmServices Control the IBM Cloud Pak foundational services requested by the Platform Navigator using key/value pairs in the format where key is a string and value is a boolean. Valid keys are monitoring, licensing, and metering. Empty. Operator handles the default values, setting monitoring on, and licensing and metering off.
spec.loggingUrl Enables usage of custom logging stack. Must be a fully specified URL. Empty

Examples

spec.nodeSelector:

Shows how to use the nodeSelector section in the Platform Navigator spec to configure the nodes where the deployment will run.

spec:
  nodeSelector:
    key1: value1
    key2: value2

spec.labels:

Shows how to use the labels section in the Platform Navigator spec to apply labels to the deployment.

spec:
  labels:
    key1: value1
    key2: value2

spec.annotations:

Shows how to use the annotations section in the Platform Navigator spec to apply annotations to the deployment.

spec:
  annotations:
    key1: value1
    key2: value2

spec.resources:

Shows how to use the resources section in the Platform Navigator spec to allocate resource requests and limits.

spec:
  resources:
    navigator:
      limits:
        cpu: '1'
        memory: 512Mi
      requests:
        cpu: '0.25'
        memory: 256Mi
    services:
      limits:
        cpu: '1'
        memory: 512Mi
      requests:
          cpu: '0.25'
          memory: 256Mi

spec.template:

Shows how to use the template section in the Platform Navigator spec to customise the containers.

spec:
  template:
    pod:
      containers:
        - image: placeholder
          imagePullPolicy: IfNotPresent
          name: ibm-cp4i-prod-navigator
        - image: placeholder
          imagePullPolicy: IfNotPresent
          name: ibm-cp4i-prod-services
      imagePullSecrets:
        - ibm-entitlement-key
        - artifactory-key

spec.requestIbmServices:

Shows how to use the requestIbmServices section in the Platform Navigator spec to control the IBM Cloud Pak foundational services requested.

spec:
  requestIbmServices:
    monitoring: true/false
    metering: true/false
    licensing: true/false

spec.loggingUrl:

Shows how to use the loggingUrl section in the Platform Navigator spec to enable usage of a custom logging stack.

spec:
  loggingUrl: "https://host.apps.cluster.domain.com/kibana"

Cluster-scoped permissions required

The Platform Navigator operator requires various cluster-scoped permissions as part of its functionality.

  • List specific Consoles: Allows the Platform Navigator operator to identify the URL derived from the host for the route that is created for the OpenShift Container Platform web console.
    • API Groups: config.openshift.io
    • Resources: consoles
    • Verbs: list, get, watch
  • List specific ClusterVersions: Allows the Platform Navigator operator to identify the OCP version that the cluster is reconciling towards.
    • API Groups: config.openshift.io
    • Resources: clusterversions
    • Verbs: list, get, watch
  • Manage ValidatingWebhookConfigurations: The Platform Navigator operator uses validation webhooks to provide immediate validation and feedback about the creation and modification of Platform Navigation instances. The permission to manage webhooks is required for the operator to register these actions.
    • API Groups: admissionregistration.k8s.io
    • Resources: validatingwebhookconfigurations
    • Verbs: get, create, update
  • Manage ConsoleYAMLSamples: ConsoleYAMLSamples are used to provide samples for the Platform Navigator resources in the OpenShift Container Platform web console. The permission to manage ConsoleYAMLSamples is required for the operator to register the setting up of samples.
    • API Groups: console.openshift.io
    • Resources: consoleyamlsamples
    • Verbs: get, create, update
  • List specific CustomResourceDefinitions: Required to allow the Platform Navigator operator to give permissions to the Platform Navigator instances, in order to identify whether other optional dependencies have been installed into the cluster.
    • API Groups: apiextensions.k8s.io
    • Resources: customerresourcedefinitions
    • Verbs: get, list
  • Manage ClusterRoles and ClusterRoleBindings: The Platform Navigator operator gives the Platform Navigator instances permissions to list CustomResourceDefinitions, which are cluster-scoped objects. These permissions must be created and managed as ClusterRoles. The permission to manage ClusterRoleBindings allows the operator to identify the appropriate ClusterRole created.
    • API Groups: rbac.authorization.k8s.io
    • Resources: clusterroles, clusterrolebindings
    • Verbs: create, list, get, watch, update, delete