Preparing to install IBM Operational Decision Manager

Before you install Operational Decision Manager, you need to check your environment to make sure that you have everything that you need.

About this task

Operational Decision Manager must persist data in a database. You must have a persistent volume (PV) before you install the Operational Decision Manager containers. PV represents an underlying storage capacity in the infrastructure. PV must be created with accessMode, ReadWriteOnce, and storage capacity of 5Gi or more.

You have two possible ways to persist the data.

  • Use a PostgreSQL internal database. An internal database is the default.
    Note:
    • Secret credentials: internalDatabase.secretCredentials
  • Use an external database, which can be Db2®, PostgreSQL, or customized.

An internal database can use a predefined persistent volume claim (PVC) or Kubernetes dynamic provisioning.

Predefined PVC
  • internalDatabase.persistence.enabled: true (default)
  • internalDatabase.persistence.useDynamicProvisioning: false (default)
  • Kubernetes binding process selects a volume based on the accessMode and size.
Kubernetes dynamic provisioning
Dynamic provisioning uses the default storageClass defined by the Kubernetes admin or by using a custom storageClass that overrides the default. You must change the default value for dynamic provisioning from false to true.
  • internalDatabase.persistence.enabled: true (default)
  • internalDatabase.persistence.useDynamicProvisioning: true
  • Specify a custom storageClassName per volume or leave the value empty to use the default storageClass.

An external database can use Db2 or PostgreSQL without customization. Use the following configuration parameters:

  • Server type: externalDatabase.type
  • Server name: externalDatabase.serverName
  • Port: externalDatabase.port
  • Database name: externalDatabase.databaseName
  • Secret credentials: externalDatabase.secretCredentials

If you want to use a custom external database, see Configuring a custom external database.

For a custom database, use the following configuration parameters:

  • Data source secret: externalCustomDatabase.datasourceRef
  • Persistent Volume Claim to access the JDBC database driver: externalCustomDatabase.driverPvc

For more information about supported databases, see Detailed system requirements.

Procedure

  1. Make a note of the Lightweight Directory Access Protocol (LDAP) parameters that are used to connect to the LDAP server to validate users.

    The Directory service server has a number of mandatory configuration parameters, so it is best to save these values somewhere and refer to them when you need them. For more information, see LDAP parameters.

  2. Take note of the database connection information.

    For more information, see Operational Decision Manager parameters.

  3. To secure access to the database, you must create a secret that encrypts the database user and password before you install.
    1. Log in to your Certified Kubernetes cluster with an administrator user.

      For example, on OpenShift, use the oc login command:

      oc login https://CLUSTERIP:8443 --token=<hidden>
    2. Create the secret by running the following kubectl command.
      kubectl create secret generic <odm-db-secret> --from-literal=db-user=<user-name> --from-literal=db-password=<password>
      secret "<odm-db-secret>" created
    3. Reference this secret during the installation. Depending on the type of database, enter the name of the secret for the internal database (internalDatabase.secretCredentials) or external database (externalDatabase.secretCredentials).
  4. To customize the Decision Center Business console with your own implementation of dynamic domains, custom value editors, or custom ruleset extractors you must create a persistent volume claim (PVC) dedicated to the storage of the custom libraries.
    1. Create a YAML file, for example custom-dc-libs-pvc.yaml. The following example defines a PVC that is named custom-dc-libs-pvc.
      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:  
        name: custom-dc-libs-pvc
      spec:
        accessModes:    
          - ReadWriteOnce  
        resources:    
          requests:      
            storage: 1Gi

      Do not forget to size the storage of the PVC, which is based on the size of the custom libraries.

    2. Use the following command to create the PVC.
      kubectl create -f custom-dc-libs-pvc.yaml
    3. Check that the PVC is installed.

      The following command shows the bound persistent volume (PV) of all the PVCs.

      kubectl get pvc

      The following command verifies that the PVC is bound to a PV by showing the description of the PV and its claim.

      kubectl describe pv <pv_name>
  5. If you want to customize the installation further, use the configuration tasks under IBM Operational Decision Manager.
  6. If you want to create your own decision services from scratch, install Rule Designer from the Eclipse Marketplace.

What to do next

In most cases before you deploy, you are likely to want to do some additional configuration steps to protect your containers and define users and groups to access Decision Center and Decision Server. Customization must be planned and prepared before you install an instance.

After you complete the setup of your environment, go to Installing an operator on Kubernetes.