Installing the data access layer

The data access layer supports Concert Home, cross-capability queries, and AI features. It includes two components: TurboLite and ITOM.

You must install both components for the data access layer to work. If you ran the setup script with ENABLE_CROSS_PRODUCT_INTEGRATION=true defined in the params.ini file, ITOM is already installed. For more information, see Installing the platform hub.

Step 1: Install TurboLite

TurboLite supports k3, Kubernetes, and Red Hat OpenShift deployments only. Open virtual appliance (OVA) deployments are not supported.

  1. Create the turbonolite namespace and set it as the current context.
    kubectl create ns turbolite
    kubectl config set-context --current --namespace=turbolite
  2. Create the TurboLite operator service account, role, and role binding.
    kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/service_account.yaml
    kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/role.yaml
    kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/role_binding.yaml
  3. Create the TurboLite operator custom resource definition (CRD).
    kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/8.20.3/deploy/crds/charts_v1_xl_crd.yaml
  4. Install the TurboLite operator:
    kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/8.20.3/deploy/operator.yaml
  5. Create the TurboLite custom resource (CR).
    1. Download the TurboLite sample CR.

      curl -O https://raw.githubusercontent.com/IBM/t8c-operator/8.20.3/deploy/samples/turbolite/charts_v1_turbolite_cr.yaml

      This TurboLite sample CR includes all the required settings to deploy TurboLite. You can customize it further to meet the needs of your environment.

    2. Customize the CR for your environment.

      • For Kubernetes deployments, replace the value for the externalIP field with the external IP address of your VM or cluster.

      • If you plan to install Concert Protect, Workflows, or Data Apps, avoid potential port collisions by specifying alternative ports for the TurboLite load balancer:
        spec:
          nginx:
            httpPort: 9443
            httpsPort: 9080
      • Optionally, if you need to specify database sizing requirements, add a definition similar to the following example.

        db:
            enabled: true
            persistence:
              size: 5Gi

      Make sure to save the file when you finish editing.

  6. Deploy the TuboLite CR.

    kubectl apply -f charts_v1_turbolite_cr.yaml

    Deployment starts for all the TurboLite pods. Depending on the environment, the deployment might take from 5 to 20 minutes.

  7. After 5-20 minutes, check to make sure that the installation was successful and all pods are running.
    kubectl get po -n turbolite
    Look for output that is similar to the following example:
    NAME                                    READY   STATUS    RESTARTS      AGE
    t8c-operator-xxxxxxxxxxxxxxxx           1/1     Running   0             19h
    mediation-concert-xxxxxxxxxxxxxxxx      2/2     Running   0             19h
    mediation-turbonomic-xxxxxxxxxxxxxxxx   2/2     Running   0             19h
    nginx-xxxxxxxxxxxxxxxx                  1/1     Running   0             19h
    rsyslog-xxxxxxxxxxxxxxxx                1/1     Running   0             19h
    redis-xxxxxxxxxxxxxxxx                  2/2     Running   1 (19h ago)   19h
    kafka-xxxxxxxxxxxxxxxx                  1/1     Running   0             19h
    db-xxxxxxxxxxxxxxxx                     1/1     Running   0             19h
    consul-xxxxxxxxxxxxxxxx                 1/1     Running   0             19h
    mediation-xxxxxxxxxxxxxxxx              1/1     Running   1 (19h ago)   19h
    auth-xxxxxxxxxxxxxxxx                   1/1     Running   0             19h
    api-xxxxxxxxxxxxxxxx                    1/1     Running   0             19h
    clustermgr-xxxxxxxxxxxxxx               2/2     Running   0             19h
    repository-x                            1/1     Running   0             19h
    topology-xxxxxxxxxxxxxxxx               1/1     Running   0             19h
    oauth2-xxxxxxxxxxxxxxxx                 1/1     Running   2 (19h ago)   19h
    group-xxxxxxxxxxxxxxxx                   1/1     Running   0             19h

Step 2: Apply the TurboLite license

After TurboLite is deployed, apply a license to activate it. A temporary license is available from IBM Passport Advantage when you purchase Concert platform. Use the Turbonomic license key that is included in the license keys .zip file.

  1. Run the following command to get the NGINX service information:
    kubectl get svc nginx

    Use the returned external address or hostname to open TurboLite.

  2. Open the URL in a browser.
  3. Create an administrator username and password when prompted.
  4. Go to Settings > License and add your TurboLite license as described in the Turbonomic license management documentation.

    The process to add the license for TuboLite is the same process that is documented for the Turbonomic product.

Step 3: Connect TurboLite to ITOM

After you install TurboLite, you must register it with the ITOM component by providing your TurboLite instance details through the ITOM API.

  1. Set the required variables.
    namespace="<namespace>"
    turbolite_url="<turbolite_url>"
    turbolite_user="<turbolite_user>"
    turbolite_password="<turbolite_password>"
    Replace the following values:
    • <namespace>: The namespace where you installed the platform hub.
    • <turbolite_url>: The VM host and port where you installed TurboLite in https://<vm_host_name>:<port> format, for example https://platformproducts1.fyre.ibm.com:9443.
    • <turbolite_user>, <turbolite_password>: The credentials that you created when you first logged in to TurboLite in step 3 of Apply the TurboLite license.
  2. Retrieve the ITOM API key.
    APIKEY=$(kubectl -n "${namespace}" \
      get secret itom-secrets \
      -o jsonpath="{.data.BACKEND_APIKEY}" | base64 -d)
  3. Call the ITOM API inside the pod.
    kubectl -n "${namespace}" exec deployment/ibm-itom-data-model-backend -- \
    bash -c "curl -k -X POST https://localhost:7531/api/v1/registerGroupWithTurboLite \
      -H \"x-api-key: ${APIKEY}\" \
      -H 'Content-Type: application/json' \
      -d '{
        \"group_id\": \"0000-0000-0000-0000-default\",
        \"account_id\": \"0000-0000-0000-0000\",
        \"turbolite_endpoint\": \"${turbolite_url}\",
        \"turbolite_user\": \"${turbolite_user}\",
        \"turbolite_password\": \"${turbolite_password}\"
      }'

Next steps

After you install the data access layer, install your capabilities.