forked from passbolt/charts-passbolt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.md.gotmpl
142 lines (96 loc) · 5.26 KB
/
README.md.gotmpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Passbolt Helm chart
<h3 align="center">
<img src="./.assets/helm_passbolt.png" alt="passbolt sails kubernetes" width="500"/>
</h3>
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
Passbolt is an open source, security first password manager with strong focus on
collaboration.
## TL;DR
The following commands are not recommended for production deployments as they will
use default passwords for internal databases:
```bash
helm repo add my-repo https://download.passbolt.com/charts/passbolt
helm install my-release my-repo/passbolt
```
In case you prefer to use postgresql intead of mariadb, a sample config is provided in the examples directory:
```
helm repo add my-repo https://download.passbolt.com/charts/passbolt
helm install my-release my-repo/passbolt -f examples/postgresql.yaml
```
Production workloads should change the fields with values 'CHANGEME' on values.yaml
and deploy the chart as follows:
```bash
helm repo add my-repo https://download.passbolt.com/charts/passbolt
helm install my-release my-repo/passbolt -f values.yaml
```
Or using `--set` flags to modify certain chart options:
```bash
helm repo add my-repo https://download.passbolt.com/charts/passbolt
helm install my-release my-repo/passbolt \
--set redis.auth.password=my_redis_password \
--set passboltEnv.secret.CACHE_CAKE_DEFAULT_PASSWORD=my_redis_password \
--set mariadb.auth.password=my_mariadb_password \
--set passboltEnv.secret.DATASOURCES_DEFAULT_PASSWORD=my_mariadb_password
```
## Introduction
This chart deploys [passbolt](https://www.passbolt.com) on [kubernetes](https://kubernetes.io) using the [Helm](https://helm.sh/) package manager.
Passbolt comes in three editions:
- [Community edition](https://www.passbolt.com/ce/docker)
- [Professional edition](https://signup.passbolt.com/pricing/pro)
- [Cloud edition](https://signup.passbolt.com/pricing/cloud)
This chart supports the deployment of Community edition and Professional edition.
## Prerequisites
- Kubernetes 1.19+ or 1.23+ if you want to use hpa
- Helm 3.x
- Passbolt docker >= 3.12.2-1
## Installing the chart
Installing the chart under the name `my-release`:
```bash
helm install my-release my-repo
```
The above command deploys passbolt with default settings on your kubernetes cluster.
Check the [configuration](#Configuration) section to check which parameters you can fine tune.
## Creating first user
Once the chart is deployed, you can create your first user by running the following command:
```bash
kubectl exec -it <passbolt-pod-name> -- su -c "bin/cake passbolt register_user -u <email> -f <firstname> -l <lastname> -r admin" -s /bin/bash www-data
```
## Uninstalling the chart
To uninstall/delete the chart from your cluster:
```bash
helm delete my-release
```
The above command deletes all the kubernetes components associated with the
chart and deletes the release.
## Requirements
| Repository | Name | Version |
|-------------------------------------------------------|------------------|---------|
| https://charts.bitnami.com/bitnami | mariadb | 11.5.7 |
| https://charts.bitnami.com/bitnami | redis | 17.15.2 |
| https://download.passbolt.com/charts/passbolt-library | passbolt-library | 0.2.7 |
{{ template "chart.valuesSection" . }}
## Running tests
In order to run the available tests, you can run the `run_tests.sh` script on the root of the project. This script runs both the unit and the integration tests.
```
$ bash run_tests.sh -h
Run the available tests for passbolt helm charts
Syntax: run_tests.sh [options]
run_tests.sh with no arguments will run all of the available tests.
options:
-h|--help Show this message.
-l|--lint Run helm lint.
-u|--unit Run helm unittest tests.
-i|--integration Run integration tests.
-d|--database [option] Database to run integration tests with [mariadb|postgresql]."
-no-clean Skip cleaning step.
```
### Unit tests
We rely on [helm unitttest](https://github.com/helm-unittest/helm-unittest) framework, so if you want to run it on your own, follow the installation steps in their [docs](https://github.com/helm-unittest/helm-unittest?tab=readme-ov-file#install).
### Integration tests
The integration tests code is under the `tests/integration`. There are a list of tools that are required locally to run the integration tests ([kind](https://github.com/kubernetes-sigs/kind), [helm](https://github.com/helm/helm), [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl), [mkcert](https://github.com/FiloSottile/mkcert) and [passbolt go cli](https://github.com/passbolt/go-passbolt-cli))
and they will be downloaded during the tests execution if they are not installed in the system. Even though, there is a cleaning step that runs at the end of the execution to clean the directory.
## Updating README.md
We rely on the [helm-docs](https://github.com/norwoodj/helm-docs) helm plugin and [mdformat](https://github.com/executablebooks/mdformat) with [mdformat-tables](https://github.com/executablebooks/mdformat-tables) to generate and format the README.md on each release
```
helm-docs -t README.md.gotmpl --dry-run | mdformat - > README.md
```