> For the complete documentation index, see [llms.txt](https://docs.decisionrules.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decisionrules.io/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts.md).

# Helm Charts

Official Helm charts for deploying DecisionRules to Kubernetes: Amazon EKS, Azure AKS, generic Kubernetes with NGINX Ingress, Red Hat OpenShift and Google Kubernetes Engine.

DecisionRules provides Helm charts for deploying the application to Kubernetes. Each chart is tailored to one platform and uses that platform's way of exposing applications to users. Pick the chart for your platform below. Each chart has its own page describing what it deploys, what you need to provision separately, and all configuration options.

## Choose a chart

| Chart                                                                                                                         | Platform                                                          | How the application is exposed                                             | TLS                                         | Credentials                                      |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------- | ------------------------------------------------ |
| [Amazon EKS](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/amazon-eks-helm-chart.md) | Amazon EKS with EKS Auto Mode                                     | A public Network Load Balancer per component                               | Not configured by the chart                 | Kubernetes Secret (recommended) or `values.yaml` |
| [Azure AKS](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/azure-aks-helm-chart.md)   | Azure Kubernetes Service                                          | A public Azure Load Balancer IP per component                              | Not configured by the chart                 | `values.yaml`                                    |
| [Ingress](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/ingress-helm-chart.md)       | Any Kubernetes with the NGINX Ingress Controller and cert-manager | One Ingress, a hostname per component                                      | Let's Encrypt certificate from cert-manager | `values.yaml`                                    |
| [OpenShift](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/openshift-helm-chart.md)   | Red Hat OpenShift (OCP, ARO, ROSA)                                | An OpenShift Route for the client and the server                           | Edge TLS on the Routes                      | Kubernetes Secret (required)                     |
| [GKE](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/gke-helm-chart.md)               | Google Kubernetes Engine (Standard or Autopilot)                  | One GKE Ingress (Google Cloud load balancer) for the client and the server | Google-managed certificate                  | Kubernetes Secret (required)                     |

## What all charts have in common

* **The charts deploy only DecisionRules:** the client, the server and, optionally, Business Intelligence and the AI Engine. MongoDB and Redis are never deployed by the charts. Provision them separately and make sure they are reachable from the cluster. For a private connection to MongoDB Atlas, see [MongoDB Atlas Network Peering](/doc/other-deployment-options/docker-and-on-premise/setup/mongodb-atlas-network-peering.md).
* **Outbound access:** the server must reach the DecisionRules license and distribution servers, see [Prerequisites](/doc/other-deployment-options/docker-and-on-premise/prerequisites.md), or use an [Offline License](/doc/other-deployment-options/docker-and-on-premise/offline-license.md).
* **Images:** all charts use the official images from Docker Hub and default to the `latest` tag. Pin a specific version in production.
* **Server sizing:** every chart sizes the server for the rule solver you use, see [Server sizing](#server-sizing). Make sure your cluster has room for at least two server Pods.
* **Application URLs:** the server needs its own public URL (`API_URL`) and the client's URL (`CLIENT_URL`, ending with `/#`). The OpenShift and GKE charts derive them from the hostnames. With the other charts you set them in `values.yaml`.

See [Environment Variables](/doc/other-deployment-options/docker-and-on-premise/containers-environmental-variables.md) for the meaning of every variable the charts set.

## Server sizing

All charts size the server according to the rule solver you use. AERO is the default.

| Rule solver                      | Chart value      | Server CPU / memory per Pod                      | Autoscaling |
| -------------------------------- | ---------------- | ------------------------------------------------ | ----------- |
| AERO (v2) or mixed v1/v2 traffic | `aero` (default) | `4000m` / `4Gi` (requests = limits)              | 2–5 Pods    |
| GAIA (v1) only                   | `gaia`           | `1000m` / `1Gi` requests, `2000m` / `2Gi` limits | 2–10 Pods   |

AERO uses several CPUs within one process, so it runs best on fewer, larger replicas. Select the profile with `solver` in the EKS, AKS and Ingress charts and with `server.solver` in the OpenShift and GKE charts. Both profiles are defined in each chart's `values.yaml` (`solverProfiles`, or `server.solverProfiles` in the OpenShift and GKE charts), so you can adjust them. To size the server yourself regardless of the profile, set the server resources and the autoscaling range explicitly; they take precedence over the profile. See [server sizing](/doc/decisionrules-applications/server-app.md#minimal-requirements) for scaling and resource reserve.

{% hint style="warning" %}
AERO is the default from chart versions EKS 0.4.0, AKS 0.3.0, Ingress 0.3.0 and OpenShift 0.2.0, and in all versions of the GKE chart. Earlier versions sized the server like `gaia`. When you upgrade an existing installation, set the solver to `gaia` to keep the previous sizing.
{% endhint %}

## Quick start

The commands below only add the repository and install the chart. Read the chart's page first to prepare the values file and the resources the chart expects.

{% tabs %}
{% tab title="EKS" %}

```bash
helm repo add decisionrules-eks https://decisionrules.github.io/helm-charts/decisionrules-eks/

helm install decisionrules-eks decisionrules-eks/decisionrules-eks -f values.yaml
```

[Amazon EKS Helm Chart](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/amazon-eks-helm-chart.md)
{% endtab %}

{% tab title="AKS" %}

```bash
helm repo add decisionrules-aks https://decisionrules.github.io/helm-charts/decisionrules-aks/

helm install decisionrules-aks decisionrules-aks/decisionrules-aks -f values.yaml
```

[Azure AKS Helm Chart](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/azure-aks-helm-chart.md)
{% endtab %}

{% tab title="Ingress" %}

```bash
helm repo add decisionrules-ingress https://decisionrules.github.io/helm-charts/decisionrules-ingress/

helm install decisionrules-ingress decisionrules-ingress/decisionrules-ingress -f values.yaml
```

[Ingress Helm Chart](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/ingress-helm-chart.md)
{% endtab %}

{% tab title="OpenShift" %}

```bash
helm repo add decisionrules-ocp https://decisionrules.github.io/helm-charts/decisionrules-ocp/

helm install decisionrules decisionrules-ocp/decisionrules-ocp -n decisionrules -f my-values.yaml
```

[OpenShift Helm Chart](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/openshift-helm-chart.md)
{% endtab %}

{% tab title="GKE" %}

```bash
helm repo add decisionrules-gke https://decisionrules.github.io/helm-charts/decisionrules-gke/

helm install decisionrules decisionrules-gke/decisionrules-gke -n decisionrules -f my-values.yaml
```

[GKE Helm Chart](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts/gke-helm-chart.md)
{% endtab %}
{% endtabs %}

If you prefer to write the Kubernetes manifests yourself, see [Kubernetes Setup](/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decisionrules.io/doc/other-deployment-options/docker-and-on-premise/setup/kubernetes-setup/helm-charts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
