# Storefront

The chart also deploys 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 npm based process, which executes 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 Storefront chart and their default values.

| Parameter             | Description                                              | Default                                  |
| --------------------- | -------------------------------------------------------- | ---------------------------------------- |
| `template`            | id of the template to use                                | `"js-default"`                           |
| `namespace`           | namespace to deploy on                                   | `"storefront-ui"`                        |
| `tier`                | tier annotation to use for deployment                    | `"ui"`                                   |
| `unit`                | unit annotation to use for deployment                    | `"storefront"`                           |
| `scope`               | scope annotation to use for deployment                   | `"store"`                                |
| `language`            | language annotation to use for deployment                | `"javascript"`                           |
| `image`               | docker image to use for init container                   | `"node:buster"`                          |
| `rierinoImageBase`    | docker image to use for main container                   | `"ghcr.io/rierino-open/storefront-demo"` |
| `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                                   | `"storefront-node-pool"`                 |
| `strategyType`        | deployment strategy to use (e.g. Recreate)               | `"RollingUpdate"`                        |
| `maxSurge`            |                                                          | `1`                                      |
| `maxUnavailable`      |                                                          | `0`                                      |
| `replicaCount`        | number of replicas to deploy                             | `1`                                      |
| `deploymentKind`      | whether deployment should be a StatefulSet or Deployment | `"Deployment"`                           |
| `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                           | `443`                                    |
| `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                             | `8081`                                   |
| `scheme`              | scheme to use for web services                           | `"HTTP"`                                 |


---

# 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.rierino.com/installation/artifacts/helm-charts/application-charts/storefront.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.
