@@ -1,14 +1,12 @@
11# Octopod
22
3−### This is beta version of a chart!
4−
53[Octopod](https://octopod.site/) is a fully open-source self-hosted solution for managing multiple deployments in a Kubernetes cluster with a user-friendly web interface. Managing deployments does not require any technical expertise.
64
75## TL;DR
86```console
9−helm repo add typeable https://typeable.github.io/octopod/
10−kubectl create ns octopod-deployment
11−helm install octopod typeable/octopod --set octopod.baseDomain="your-domain.com"
7+$ helm repo add typeable https://typeable.github.io/octopod/
8+$ kubectl create ns octopod-deployment
9+$ helm install octopod typeable/octopod --set octopod.baseDomain="your-domain.com"
1210```
1311
1412## Introduction
@@ -33,27 +31,12 @@ Second in which Octopod will deploy all it's deployments (configured in octopod.
3331```console
3432$ kubectl create namespace octopod-deployments
3533```
36−Also you need to generate certificates for octo client<->octopod server communication.
37−
38−Generate certificates
39−```bash
40−mkdir certs
41−cd certs && \
42−openssl req -x509 -newkey rsa:4096 -keyout server_key.pem -out server_cert.pem -nodes -subj "/CN=localhost/O=Server" && \
43−openssl req -newkey rsa:4096 -keyout client_key.pem -out client_csr.pem -nodes -subj "/CN=Client" && \
44−openssl x509 -req -in client_csr.pem -CA server_cert.pem -CAkey server_key.pem -out client_cert.pem -set_serial 01 -days 3650
45−
46−```
47−Create configmap from generated certificates
48−```console
49−kubectl create configmap octopod-certs -n octopod --from-file=./certs
50−```
51−Name for configmap is cofigured in octopod.certsConfigMapName
34+
5235To install the chart with the release name `my-release` from current directory execute:
5336
5437```console
5538$ helm repo add typeable https://typeable.github.io/octopod/
56−# helm -n octopod install my-release typeable/octopod
39+$ helm -n octopod install my-release typeable/octopod --set octopod.baseDomain="your-domain.com"
5740```
5841
5942The command deploys Octopod on the Kubernetes cluster in the default configuration inside octopod namespace. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
@@ -68,6 +51,17 @@ $ helm -n octopod delete my-release
6851
6952The command removes all the Kubernetes components but PVC's associated with the postgres chart and deletes the release.
7053
54+## Note about generated values
55+Some values (such as passwords) in this chart (and its dependencies) are generated automatically, but due to [a limitation in helm](https://github.com/helm/charts/issues/5167) the values are changing on every upgrade. To prevent this you must fix these values by providing them via `--set` flags or in the [values file](https://helm.sh/docs/chart_template_guide/values_files/).
56+
57+These values are:
58+- `postgresql.postgresqlPassword` - main db password
59+- `postgresql.postgresqlPostgresPassword` - password for "postgres" user
60+- `octopod.cliAuthSecret` - auth header for octo cli tool
61+- `octopod.uiAuthSecret` - basic auth secret for ui->octopod communication
62+
63+Note: if these values are not provided, the `helm upgrade` command can fail or Octopod will not work after the upgrade.
64+
7165## Parameters
7266
7367The following tables lists the configurable parameters of the Octopod chart and their default values.
@@ -102,6 +96,7 @@ The following tables lists the configurable parameters of the Octopod chart and
10296| octopod.archiveRetention | int | `1209600` | |
10397| octopod.baseDomain | string | `""` | Domain that will be used as a ase for Octopod deploymets and ingress hosts|
10498| octopod.cliAuthSecret | string | `nil` | Auth Header for accessing octopod using octo CLI |
99+| octopod.uiAuthSecret | string | `nil` | Basic auth secret for securing communcation between octopod UI and backend API |
105100| octopod.deploymentNamespace | string | `"octopod-deployment"` | Name of a namespace which will be used for all Octopod deployments (you need to create it yourself) |
106101| octopod.env | object | `{}` | key value map for supplying additional environment variables for octopod or your control scripts |
107102| octopod.migrations.enabled | bool | `true` | Enable or not automatic DB schema migrations |