Deploy with Helm

The Optimization Server can be deployed using a set of Helm charts. The chart supports both Kubernetes and OKD/Openshift plaforms.

There are 4 Helm charts that must be deployed in the following order:

  • dbos-volumes : deploys volumes for persistent data
  • dbos-secrets : stores the usernames, database names and passwords into secrets objects.
  • dbos-infra : deploys third party pieces of software Optimization Server depends on (Keycloak, Postgres, RabbitMQ, MongoDB)
  • dbos : deploys the Optimization Server application itself.

Additionally you can install:

You can download the charts directly by clicking on the links above or add the DecisionBrain Helm registry

Download the charts

Before starting configuration and deployment, download and unzip the charts, and create a values.yaml file in the root folder for later configuration steps.

|-- values.yaml
|-- dbos-volumes-3.2.2/
|-- dbos-secrets-3.2.2/
|-- dbos-infra-3.2.2/
|-- dbos-3.2.2/

Or add the DecisionBrain Helm registry

Add the DecisionBrain Helm registry to your Helm repositories list

helm repo add decisionbrain --username <userId> --password <password>

Check you can see the charts.

helm search repo dbos

Expected output:

decisionbrain/dbos 3.2.2 3.2.2
decisionbrain/dbos-infra 3.2.2 3.2.2
decisionbrain/dbos-secrets 3.2.2 3.2.2
decisionbrain/dbos-volumes 3.2.2 3.2.2
decisionbrain/dbos-cplexstudio-workers 3.2.2 3.2.2
decisionbrain/dbos-workers-on-demand 3.2.2 3.2.2

Global Configuration

These 4 charts share a same set of global values.

Fill the values.yaml file with the following to deploy the charts on a Kubernetes or Openshift cluster:

  target: k8s # k8s (Kubernetes) or okd

Choose your domain and access protocol and route kind :

  protocol: https # http or https
  routeKind: Ingress # (Ingress, IngressRoute, IngressGateway) for target = k8s, do not set this property for target = okd

The charts support the following Ingress providers:

routeKind Provider
Ingress nginx
IngressRoute traefik
IngressGateway istio

Configure your image puller:

  - name: # do not change this.
    dockerconfigjson: XXXXX

Where ‘XXXXX’ is the token you have been given to access the DecisionBrain’s docker repository.

Choose your authentication mechanism :

  authMode: keycloak # keycloak or basicAuth