# H2O Wave

The chart also deploys a headless service and a load balancer service enabling external access.

### Containers

#### Init Container

Chart contains an initialization container for any extra steps.

#### Main Container

Main container of this chart is an executable based process, which runs actual service and typically has liveness probes enabled.

### Configuration

#### Local Configuration

Chart contains:

* 1 x config map containing build/execution files mounted on /app/config
* 1 x environment config map that can be used to add environment variables
* 1 x secret that can be used to add secret files mounted on /app/secrets
* 1 x environment secret that can be used to add environment variables

#### Global Configuration

Chart containers also have access to:

* global-config: Mounted on /app/globalconfig including key-value pairs and extra lines to include in application.properties files
* global-config-env: A config map that can be used to add environment variables for all namespace deployments
* global-secrets: Mounted on /app/globalsecrets including key-secret pairs and extra lines to include in application.properties files
* global-secrets-env: A secret that can be used to add environment variables for all namespace deployments
* global-secrets-docker: Used as the imagePullSecrets secret

### Configuration

The following table lists the configurable parameters of the H2owave chart and their default values.

| Parameter             | Description                                             | Default                        |
| --------------------- | ------------------------------------------------------- | ------------------------------ |
| `namespace`           | namespace to deploy on                                  | `"admin-ui"`                   |
| `tier`                | tier annotation to use for deployment                   | `"ui"`                         |
| `unit`                | unit annotation to use for deployment                   | `"h2owave"`                    |
| `scope`               | scope annotation to use for deployment                  | `"admin"`                      |
| `language`            | language annotation to use for deployment               | `"go"`                         |
| `image`               | docker image to use for init container                  | `"debian:stable-slim"`         |
| `rierinoImage`        | docker image to use for main container                  | `"ghcr.io/rierino-open/waved"` |
| `rierinoPullPolicy`   | docker image pull policy for main container             | `"IfNotPresent"`               |
| `cloud`               | cloud vendor to use for deployment (e.g. gcp, aws)      | `"TBD"`                        |
| `poolSelector`        | node pool selector annotation specific to cloud vendor  | `"TBD"`                        |
| `pool`                | node pool to deploy on                                  | `"wave-node-pool"`             |
| `strategyType`        | deployment strategy to use                              | `"Recreate"`                   |
| `replicaCount`        | number of replicas to deploy                            | `1`                            |
| `podManagementPolicy` | policy for launching / terminating stateful set pods    | `"Parallel"`                   |
| `useProbes`           | whether main container should use liveness, etc. probes | `false`                        |
| `skipInit`            | whether should skip init container                      | `true`                         |
| `lbPort`              | port for load balancer service                          | `10101`                        |
| `lbAnnotations.dummy` |                                                         | `"yes"`                        |
| `initMemoryRequest`   | memory request for init container                       | `"256Mi"`                      |
| `initCpuRequest`      | cpu request for init container                          | `"250m"`                       |
| `initMemoryLimit`     | memory limit for init container                         | `"512Mi"`                      |
| `initCpuLimit`        | cpu limit for init container                            | `"500m"`                       |
| `memoryRequest`       | memory request for main container                       | `"256Mi"`                      |
| `cpuRequest`          | cpu request for main container                          | `"250m"`                       |
| `memoryLimit`         | memory limit for main container                         | `"512Mi"`                      |
| `cpuLimit`            | cpu limit for main container                            | `"500m"`                       |
| `rierinoVersion`      | Rierino image version to deploy                         | `"0.1.1"`                      |
| `port`                | port to use for web services                            | `10101`                        |
