153 lines
10 KiB
Markdown
153 lines
10 KiB
Markdown
# ⚠️ Repo Archive Notice
|
|
|
|
As of Nov 13, 2020, charts in this repo will no longer be updated.
|
|
For more information, see the Helm Charts [Deprecation and Archive Notice](https://github.com/helm/charts#%EF%B8%8F-deprecation-and-archive-notice), and [Update](https://helm.sh/blog/charts-repo-deprecation/).
|
|
|
|
# ⚠️ Chart Deprecated
|
|
|
|
# Bookstack
|
|
|
|
[Bookstack](https://www.bookstackapp.com) is a simple, easy-to-use platform for organising and storing information.
|
|
|
|
## TL;DR;
|
|
|
|
```bash
|
|
$ helm install stable/bookstack
|
|
```
|
|
|
|
## Introduction
|
|
|
|
This chart bootstraps a [Bookstack](https://hub.docker.com/r/solidnerd/bookstack/) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
|
|
|
It also uses the [MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which satisfies the database requirements of the application.
|
|
|
|
## Prerequisites
|
|
|
|
- Kubernetes 1.9+ with Beta APIs enabled
|
|
- PV provisioner support in the underlying infrastructure
|
|
|
|
## Installing the Chart
|
|
|
|
To install the chart with the release name `my-release`:
|
|
|
|
```bash
|
|
$ helm update --install my-release stable/bookstack
|
|
```
|
|
|
|
The command deploys Bookstack on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
|
|
|
|
> **Tip**: List all releases using `helm list`
|
|
|
|
## Uninstalling the Chart
|
|
|
|
To uninstall/delete the `my-release` deployment:
|
|
|
|
```bash
|
|
$ helm delete my-release
|
|
```
|
|
|
|
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
|
|
|
## Configuration
|
|
|
|
The following table lists the configurable parameters of the Redmine chart and their default values.
|
|
|
|
| Parameter | Description | Default |
|
|
| --------------------------------- | ---------------------------------------- | ------------------------------------------------------- |
|
|
| `env` | additional env variables | `{}` |
|
|
| `replicaCount` | Number of replicas to start | `1` |
|
|
| `image.repository` | Bookstack image name | `solidnerd/bookstack` |
|
|
| `image.tag` | Bookstack image tag | `0.27.5` |
|
|
| `image.pullPolicy` | Bookstack image pull policy | `IfNotPresent` |
|
|
| `externalDatabase.host` | Host of the external database | `nil` |
|
|
| `externalDatabase.port` | Port of the external database | `3306` |
|
|
| `externalDatabase.user` | Existing username in the external db | `bookstack` |
|
|
| `externalDatabase.password` | Password for the above username | `nil` |
|
|
| `externalDatabase.database` | Name of the existing database | `bookstack` |
|
|
| `mariadb.enabled` | Whether to use the MariaDB chart | `true` |
|
|
| `mariadb.db.name` | Database name to create | `bookstack` |
|
|
| `mariadb.db.user` | Database user to create | `bookstack` |
|
|
| `mariadb.db.password` | Password for the database | `nil` |
|
|
| `mariadb.rootUser.password` | MariaDB admin password | `nil` |
|
|
| `mariadb.master.persistence.enabled` | Enable MariaDB persistence using PVC | `false` |
|
|
| `mariadb.master.persistence.storageClass` | PVC Storage Class for MariaDB volume | `nil` (uses alpha storage class annotation) |
|
|
| `mariadb.master.persistence.accessMode` | PVC Access Mode for MariaDB volume | `ReadWriteOnce` |
|
|
| `mariadb.master.persistence.size` | PVC Storage Request for MariaDB volume | `8Gi` |
|
|
| `service.type` | Desired service type | `ClusterIP` |
|
|
| `service.port` | Service exposed port | `80` |
|
|
| `podSecurityPolicy.enabled` | Create & use Pod Security Policy resources | `false` |
|
|
| `rbac.create` | Use Role-based Access Control | `true` |
|
|
| `serviceAccount.create` | Should we create a ServiceAccount | `true` |
|
|
| `serviceAccount.name` | Name of the ServiceAccount to use | `null` |
|
|
| `persistence.uploads.enabled` | Enable persistence using PVC for uploads | `true` |
|
|
| `persistence.uploads.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) |
|
|
| `persistence.uploads.accessMode` | PVC Access Mode | `ReadWriteOnce` |
|
|
| `persistence.uploads.size` | PVC Storage Request | `8Gi` |
|
|
| `persistence.uploads.existingClaim` | If PVC exists & bounded for uploads | `nil` (when nil, new one is requested) |
|
|
| `persistence.storage.enabled` | Enable persistence using PVC for uploads | `true` |
|
|
| `persistence.storage.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) |
|
|
| `persistence.storage.accessMode` | PVC Access Mode | `ReadWriteOnce` |
|
|
| `persistence.storage.size` | PVC Storage Request | `8Gi` |
|
|
| `persistence.storage.existingClaim` | If PVC exists & bounded for storage | `nil` (when nil, new one is requested) |
|
|
| `ingress.enabled` | Enable or disable the ingress | `false` |
|
|
| `ingress.hosts` | The virtual host name(s) | `{}` |
|
|
| `ingress.annotations` | An array of service annotations | `nil` |
|
|
| `ingress.tls[i].secretName` | The secret kubernetes.io/tls | `nil` |
|
|
| `ingress.tls[i].hosts[j]` | The virtual host name | `nil` |
|
|
| `resources` | Resources allocation (Requests and Limits) | `{}` |
|
|
| `ldap.enabled` | Enable or disable LDAP authentication. [See official docs for details](https://www.bookstackapp.com/docs/admin/ldap-auth/) | `false` |
|
|
| `ldap.server` | LDAP server address | `nil` |
|
|
| `ldap.base_dn` | Base DN where users will be searched | `nil` |
|
|
| `ldap.dn` | User which will make search queries. Leave empty to search anonymously. | `nil` |
|
|
| `ldap.pass` | Password of user performing search queries. | `nil` |
|
|
| `ldap.userFilter` | A filter to use when searching for users | `nil` |
|
|
| `ldap.version` | Set the LDAP version to use when connecting to the server. Required especially when using AD. | `nil` |
|
|
|
|
The above parameters map to the env variables defined in the [Bookstack image](https://hub.docker.com/r/solidnerd/bookstack/) and the MariaDB/MySQL database settings. For more information please refer to the [Bookstack](https://hub.docker.com/r/solidnerd/bookstack/) image documentation.
|
|
|
|
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
|
|
|
```bash
|
|
$ helm upgrade --install my-release \
|
|
--set podSecurityPolicy.enabled=true \
|
|
stable/bookstack
|
|
```
|
|
|
|
The above command enables podSecurityPolicy.
|
|
|
|
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
|
|
|
|
```bash
|
|
$ helm upgrade --install my-release -f values.yaml stable/bookstack
|
|
```
|
|
|
|
> **Tip**: You can use the default [values.yaml](values.yaml)
|
|
|
|
## Replicas
|
|
|
|
Bookstack writes uploaded files to a persistent volume. By default that volume
|
|
cannot be shared between pods (RWO). In such a configuration the `replicas` option
|
|
must be set to `1`. If the persistent volume supports more than one writer
|
|
(RWX), ie NFS, `replicaCount` can be greater than `1`.
|
|
|
|
## Persistence
|
|
|
|
The [Bookstack](https://hub.docker.com/r/solidnerd/bookstack/) image stores the uploaded data at the `public/uploads` path, relative to the document root of the Bookstack application. Other misc. data is stored under the `public/storage` path, also relative to the document root of the application.
|
|
|
|
Persistent Volume Claims are used to keep the data across deployments. The volume is created using dynamic volume provisioning.
|
|
|
|
See the [Configuration](#configuration) section to configure the PVC or to disable persistence.
|
|
|
|
### Existing PersistentVolumeClaims
|
|
|
|
The following example includes two PVCs, one for uploads and another for misc. data.
|
|
|
|
1. Create the PersistentVolume
|
|
1. Create the PersistentVolumeClaim
|
|
1. Create the directory, on a worker
|
|
1. Install the chart
|
|
|
|
```bash
|
|
$ helm upgrade --install test --set persistence.uploads.existingClaim=PVC_UPLOADS,persistence.storage.existingClaim=PVC_STORAGE stable/bookstack
|
|
```
|