Back to Charts

⚠️ Repo Archive Notice

stable/bookstack/README.md

latest10.2 KB
Original Source

⚠️ 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, and Update.

⚠️ Chart Deprecated

Bookstack

Bookstack 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 deployment on a Kubernetes cluster using the Helm package manager.

It also uses the MariaDB chart 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 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.

ParameterDescriptionDefault
envadditional env variables{}
replicaCountNumber of replicas to start1
image.repositoryBookstack image namesolidnerd/bookstack
image.tagBookstack image tag0.27.5
image.pullPolicyBookstack image pull policyIfNotPresent
externalDatabase.hostHost of the external databasenil
externalDatabase.portPort of the external database3306
externalDatabase.userExisting username in the external dbbookstack
externalDatabase.passwordPassword for the above usernamenil
externalDatabase.databaseName of the existing databasebookstack
mariadb.enabledWhether to use the MariaDB charttrue
mariadb.db.nameDatabase name to createbookstack
mariadb.db.userDatabase user to createbookstack
mariadb.db.passwordPassword for the databasenil
mariadb.rootUser.passwordMariaDB admin passwordnil
mariadb.master.persistence.enabledEnable MariaDB persistence using PVCfalse
mariadb.master.persistence.storageClassPVC Storage Class for MariaDB volumenil (uses alpha storage class annotation)
mariadb.master.persistence.accessModePVC Access Mode for MariaDB volumeReadWriteOnce
mariadb.master.persistence.sizePVC Storage Request for MariaDB volume8Gi
service.typeDesired service typeClusterIP
service.portService exposed port80
podSecurityPolicy.enabledCreate & use Pod Security Policy resourcesfalse
rbac.createUse Role-based Access Controltrue
serviceAccount.createShould we create a ServiceAccounttrue
serviceAccount.nameName of the ServiceAccount to usenull
persistence.uploads.enabledEnable persistence using PVC for uploadstrue
persistence.uploads.storageClassPVC Storage Classnil (uses alpha storage class annotation)
persistence.uploads.accessModePVC Access ModeReadWriteOnce
persistence.uploads.sizePVC Storage Request8Gi
persistence.uploads.existingClaimIf PVC exists & bounded for uploadsnil (when nil, new one is requested)
persistence.storage.enabledEnable persistence using PVC for uploadstrue
persistence.storage.storageClassPVC Storage Classnil (uses alpha storage class annotation)
persistence.storage.accessModePVC Access ModeReadWriteOnce
persistence.storage.sizePVC Storage Request8Gi
persistence.storage.existingClaimIf PVC exists & bounded for storagenil (when nil, new one is requested)
ingress.enabledEnable or disable the ingressfalse
ingress.hostsThe virtual host name(s){}
ingress.annotationsAn array of service annotationsnil
ingress.tls[i].secretNameThe secret kubernetes.io/tlsnil
ingress.tls[i].hosts[j]The virtual host namenil
resourcesResources allocation (Requests and Limits){}
ldap.enabledEnable or disable LDAP authentication. See official docs for detailsfalse
ldap.serverLDAP server addressnil
ldap.base_dnBase DN where users will be searchednil
ldap.dnUser which will make search queries. Leave empty to search anonymously.nil
ldap.passPassword of user performing search queries.nil
ldap.userFilterA filter to use when searching for usersnil
ldap.versionSet 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 and the MariaDB/MySQL database settings. For more information please refer to the 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

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 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 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
  2. Create the PersistentVolumeClaim
  3. Create the directory, on a worker
  4. Install the chart
bash
$ helm upgrade --install test --set persistence.uploads.existingClaim=PVC_UPLOADS,persistence.storage.existingClaim=PVC_STORAGE stable/bookstack