Deploying Prometurbo through OperatorHub

You can deploy Prometurbo by using the certified Prometurbo operator in Red Hat OpenShift OperatorHub and configuring a custom resource that creates a single instance of Prometurbo.

Deployment requirements

Review the general requirements.

Task overview

To deploy Prometurbo, perform the following tasks:

  1. Install the Prometurbo operator through OperatorHub in Red Hat OpenShift.

  2. Create a Prometurbo instance.

  3. Validate the deployment.

Installing the Prometurbo operator through OperatorHub in Red Hat OpenShift

  1. Log in to your Red Hat OpenShift console and navigate to Home > Projects.

  2. Create a project (namespace) for your Prometurbo deployment. For example, the following YAML file creates a turbo namespace:

    apiVersion: v1
    kind: Namespace
    metadata:
      name: turbo 
  3. Navigate to Operators > OperatorHub and select the project that you created.

  4. Search for Prometurbo in the search bar.

  5. Select Certified Prometurbo Operator.

  6. Select the stable channel and then install the operator.

    After the installation, the following resources are created.

    Name Kind Status API version
    prometurbo-operator.vx.x.x ClusterServiceVersion Created operators.coreos.com/v1alpha1
    prometurbos.charts.helm.k8s.io CustomResourceDefinition Present apiextensions.k8s.io/v1
    prometurbo-operator ServiceAccount Present core/v1
    prometurbo-operator.vx.x.x-xxxxxxxx ClusterRole Created rbac.authorization.k8s.io/v1
    prometurbo-operator.vx.x.x-xxxxxxxx ClusterRoleBinding Created rbac.authorization.k8s.io/v1
    Note:

    A cluster role is created for prometurbo-operator to grant it permissions to create the necessary cluster roles for Prometurbo instances.

Creating a Prometurbo instance

  1. Navigate to Operators > Installed Operators.

  2. Select the Prometurbo operator and then click Create Instance. Follow the prompts to configure the instance.

    The following table lists the configuration parameters for prometurbo:

    Parameter Description Default value
    image.prometurboRepository The prometurbo container image repository icr.io/cpopen/turbonomic/prometurbo
    image.prometurboTag The prometurbo container image tag Release version, such as 8.15.0
    image.turbodifRepository The turbodif container image repository icr.io/cpopen/turbonomic/turbodif
    image.turbodifTag The turbodif container image tag Release version, such as 8.15.0
    image.pullPolicy Specify either IfNotPresent or Always. IfNotPresent
    targetName A unique name that identifies this target Prometheus
    serviceAccountName The name of the serviceAccount used by the prometurbo pod prometurbo
    roleName The name of the clusterrole bound to serviceAccount prometurbo
    roleBinding The name of the clusterrolebinding that binds serviceAccount to clusterrole prometurbo-binding
    restAPIConfig.opsManagerUserName The username to log in to Turbonomic. A username is required if you do not use a secret. None
    restAPIConfig.opsManagerPassword The password to log in to Turbonomic. A password is required if you do not use a secret. None
    serverMeta.version Turbonomic version Release version, such as 8.15.0
    serverMeta.turboServer Turbonomic URL None
    args.logginglevel Logging level of prometurbo 2
    args.ignoreCommodityIfPresent Specify whether to ignore merging a commodity when a commodity of the same type already exists in Turbonomic. false

    The following example shows a YAML resource with the Prometurbo parameters.

    apiVersion: charts.helm.k8s.io/v1
    kind: Prometurbo
    metadata:
      name: prometurbo-release
      namespace: turbo
    spec:
      image:
        prometurboTag: 8.15.0
        turbodifTag: 8.15.0
        pullPolicy: Always
      restAPIConfig:
        opsManagerPassword: administrator
        opsManagerUserName: mypassword
      serviceAccountName: prometurbo-xl-ember
      roleBinding: prometurbo-binding-xl-ember
      roleName: prometurbo-xl-ember
      serverMeta:
        turboServer: 'https://10.1.1.1'
        version: 8.15.0
      targetName: OCP411-FYRE-IBM

Validating the deployment

  1. Verify that the prometurbo pods are up and running.

    oc -n turbo get po | grep prometurbo

    The following example results indicate that the pods were deployed and are currently running.

    prometurbo-operator-6ffc566f4c-lwbcn       1/1     Running   0          5d23h
    prometurbo-release-744947bb94-kqc2b        2/2     Running   0          5d20h
  2. Verify that the proper cluster role is created for Prometurbo. Using the example YAML resource in the previous section, a prometurbo-xl-ember cluster role should be created, with proper rules to access the prometheusquerymappings and prometheusserverconfigs resources.

  3. Open the Turbonomic user interface and navigate to Settings > Target Configuration. If the deployment was successful, a new Prometheus target appears in the list.