# Installation Helm Chart

Appmixer Self-Managed package is shipped as a zip archive and allows you to install the Appmixer platform on your own infrastructure or in a cloud-computing platform.

### Prerequisites

* Kubernetes 1.29+ or OpenShift 4.16+
* Helm 3.19+
* MongoDB (deployed automatically by this chart)
* Elasticsearch 8.x (via ECK operator)
* Docker registry credentials

***

### Features

* **Full Stack Deployment**: Appmixer engine, API, backoffice, frontend, and quota service
* **Multiple Exposure Options**: OpenShift `Route` or Kubernetes `Ingress` support
* **Production-Ready Components**:
  * MongoDB ReplicaSet with automatic initialization (3 replicas)
  * Redis Sentinel for high availability (3 replicas)
  * RabbitMQ cluster for message brokering (3 replicas)
  * Elasticsearch with Kibana for logging and monitoring (ECK managed)
  * Logstash for log processing pipeline
* **Auto-Scaling**: Horizontal Pod Autoscaler (HPA) for engine components
* **Security**: TLS/ACME support, configurable security contexts, private registry authentication
* **Customizable**: All resources, replicas, and configurations adjustable via `values.yaml`

***

#### Install the chart

1. Create namespace

```bash
kubectl create namespace $NAMESPACE
```

2. Create AWS ECR credentials secret:

```bash
kubectl create secret generic aws-ecr-credentials \
  --from-literal=AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY \
  --from-literal=AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY \
  --from-literal=AWS_DEFAULT_REGION=eu-central-1 \
  -n $NAMESPACE
```

3. Log in to AWS ECR registry:

```bash
aws ecr get-login-password --region eu-central-1 | \
helm registry login --username AWS --password-stdin 874193467787.dkr.ecr.eu-central-1.amazonaws.com
```

4. Pull the latest Appmixer Helm chart:

```bash
helm pull oci://874193467787.dkr.ecr.eu-central-1.amazonaws.com/appmixer-helm
```

4a. Pull the Appmixer Helm chart with version specified:

```bash
helm pull oci://874193467787.dkr.ecr.eu-central-1.amazonaws.com/appmixer-helm --version <CHART_VERSION>
```

5. (Optional) Untar the chart:

```bash
helm pull oci://874193467787.dkr.ecr.eu-central-1.amazonaws.com/appmixer-helm --version <CHART_VERSION> --untar
```

6. Install required Elasticsearch CRDs

```
kubectl create -f https://download.elastic.co/downloads/eck/2.16.1/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/2.16.1/operator.yaml
```

7. Update the repository:

```
helm repo update
```

8. Modify the `values.yaml` file to suit your needs. Change the `expose.method` from `routes` to `ingress` for Kubernetes. And set the `domain`.&#x20;
9. Install the chart:

```
helm upgrade --install appmixer . --namespace $NAMESPACE
```

10. Access the Appmixer UI

### How to Access Appmixer

If using OpenShift Routes:

```bash
kubectl get routes -n $NAMESPACE
```

If using Kubernetes Ingress:

```bash
kubectl get ingress -n $NAMESPACE
```

### Upgrading Appmixer Version

Update the version in `Chart.yaml`:

```yaml
appVersion: "6.2.1"
```

Then upgrade the release:

```bash
helm upgrade --install appmixer . -n $NAMESPACE
```


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.appmixer.com/6.0/6.2/appmixer-self-managed/installation-helm-chart.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
