Dominik d1b4c8c407 chore(helm): add pod annotations (#7222) | 4 months ago | |
---|---|---|
.. | ||
charts | 4 years ago | |
templates | 4 months ago | |
.helmignore | 4 years ago | |
Chart.lock | 4 years ago | |
Chart.yaml | 3 years ago | |
README.md | 1 year ago | |
values.yaml | 4 months ago |
2553c612
-f863-4407-82b3-1a76852687
)
[![Buy a T-Shirt](https://img.shields.io/badge/buy-t--shirts-teal.svg?style=popout&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4Igp3aWR0aD0iMjQiIGhlaWdodD0iMjQiCnZpZXdCb3g9IjAgMCAxOTIgMTkyIgpzdHlsZT0iIGZpbGw6IzAwMDAwMDsiPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIGZvbnQtZmFtaWx5PSJub25lIiBmb250LXdlaWdodD0ibm9uZSIgZm9udC1zaXplPSJub25lIiB0ZXh0LWFuY2hvcj0ibm9uZSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPjxwYXRoIGQ9Ik0wLDE5MnYtMTkyaDE5MnYxOTJ6IiBmaWxsPSJub25lIj48L3BhdGg+PGcgZmlsbD0iIzFhYmM5YyI+PGcgaWQ9InN1cmZhY2UxIj48cGF0aCBkPSJNOTYsMGMtMTUuMjE4NzUsMCAtMjQuNjg3NSwzLjY1NjI1IC0yNS41LDRsLTIyLjUsNy4yNWMtMTAuNDA2MjUsMy4xODc1IC0xOS4wOTM3NSw5LjQzNzUgLTI1LjUsMTguMjVsLTIyLjUsNDIuNWwyNy4yNSwxNi43NWwxMi43NSwtMjR2MTE5LjI1YzAsNC40MDYyNSAyNS4wNjI1LDggNTYsOGMzMC45Mzc1LDAgNTYsLTMuNTkzNzUgNTYsLTh2LTExOS4yNWwxMi43NSwyNGwyNy4yNSwtMTYuNzVsLTIyLjUsLTQyLjVjLTYuNDA2MjUsLTguODEyNSAtMTUuMTU2MjUsLTE1LjA2MjUgLTI0Ljc1LC0xOC4yNWwtMjIuMjUsLTcuMjVjLTAuMTg3NSwwIC0xLjAzMTI1LDEuMzEyNSAtMiwyLjc1bDEuMjUsLTIuNWMwLDAgLTkuODQzNzUsLTQuMjUgLTI1Ljc1LC00LjI1ek05Niw4YzExLjQwNjI1LDAgMTguNDM3NSwyLjI1IDIxLDMuMjVjLTQuNDY4NzUsNS43NSAtMTEuNDA2MjUsMTIuNzUgLTIxLDEyLjc1Yy05LjQwNjI1LDAgLTE2LjQwNjI1LC03LjA2MjUgLTIwLjc1LC0xMi43NWMyLjg3NSwtMS4wNjI1IDkuODc1LC0zLjI1IDIwLjc1LC0zLjI1eiI+PC9wYXRoPjwvZz48L2c+PC9nPjwvc3ZnPg==)](https://wikijs.threadless.com)
This chart bootstraps a Wiki.js deployment on a Kubernetes cluster using the Helm package manager.
It also optionally packages the PostgreSQL as the database but you are free to bring your own.
$ helm repo add requarks https://charts.js.wiki
To install the chart with the release name my-release
run the following:
$ helm install my-release requarks/wiki
$ helm install --name my-release requarks/wiki
The command deploys Wiki.js 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
To uninstall/delete the my-release
deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Warning: Persistant Volume Claims for the database are not deleted automatically. They need to be manually deleted
$ kubectl delete pvc/data-wiki-postgresql-0
The following table lists the configurable parameters of the Wiki.js chart and their default values.
Parameter | Description | Default |
---|---|---|
image.repository |
Wiki.js image | requarks/wiki |
image.tag |
Wiki.js image tag | latest |
imagePullPolicy |
Image pull policy | IfNotPresent |
replicacount |
Amount of wiki.js service pods to run | 1 |
revisionHistoryLimit |
Total amount of revision history points | 10 |
resources.limits |
wiki.js service resource limits | nil |
resources.requests |
wiki.js service resource requests | nil |
nodeSelector |
Node labels for wiki.js pod assignment | {} |
affinity |
Affinity settings for wiki.js pod assignment | {} |
schedulerName |
Name of an alternate scheduler for wiki.js pod | nil |
tolerations |
Toleration labels for wiki.jsk pod assignment | [] |
volumeMounts |
Volume mounts for Wiki.js container | [] |
volumes |
Volumes for Wiki.js Pod | [] |
ingress.enabled |
Enable ingress controller resource | false |
ingress.className |
Ingress class name | "" |
ingress.annotations |
Ingress annotations | {} |
ingress.hosts |
List of ingress rules | [{"host": "wiki.local", "paths": ["/"]}] |
ingress.tls |
Ingress TLS configuration | [] |
sideload.enabled |
Enable sideloading of locale files from git | false |
sideload.repoURL |
Git repository URL containing locale files | https://github.com/Requarks/wiki-localization |
sideload.env |
Environment variables for sideload Container | {} |
nodeExtraCaCerts |
Trusted certificates path | nil |
postgresql.enabled |
Deploy postgres server (see below) | true |
postgresql.postgresqlDatabase |
Postgres database name | wiki |
postgresql.postgresqlUser |
Postgres username | postgres |
postgresql.postgresqlHost |
External postgres host | nil |
postgresql.postgresqlPassword |
External postgres password | nil |
postgresql.existingSecret |
Provide an existing Secret for postgres |
nil |
postgresql.existingSecretKey |
The postgres password key in the existing Secret |
postgresql-password |
postgresql.postgresqlPort |
External postgres port | 5432 |
postgresql.ssl |
Enable external postgres SSL connection | false |
postgresql.ca |
Certificate of Authority content for postgres | nil |
postgresql.persistence.enabled |
Enable postgres persistence using PVC | true |
postgresql.persistence.existingClaim |
Provide an existing PersistentVolumeClaim for postgres |
nil |
postgresql.persistence.storageClass |
Postgres PVC Storage Class (example: nfs ) |
nil |
postgresql.persistence.size |
Postgers PVC Storage Request | 8Gi |
Specify each parameter using the --set key=value[,key=value]
argument to helm install
. For example,
$ helm install --name my-release \
--set postgresql.persistence.enabled=false \
requarks/wiki
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
$ helm install --name my-release -f values.yaml requarks/wiki
Tip: You can use the default values.yaml
By default, PostgreSQL is installed as part of the chart.
To use an external PostgreSQL server, set postgresql.enabled
to false
and then set postgresql.postgresqlHost
and postgresql.postgresqlPassword
. To use an existing Secret
, set postgresql.existingSecret
. The other options (postgresql.postgresqlDatabase
, postgresql.postgresqlUser
, postgresql.postgresqlPort
and postgresql.existingSecretKey
) may also want changing from their default values.
To use an SSL connection you can set postgresql.ssl
to true
and if needed the path to a Certificate of Authority can be set using postgresql.ca
to /path/to/ca
. Default postgresql.ssl
value is false
.
If postgresql.existingSecret
is not specified, you also need to add the following Helm template to your deployment in order to create the postgresql Secret
:
kind: Secret
apiVersion: v1
metadata:
name: {{ template "wiki.postgresql.secret" . }}
data:
{{ template "wiki.postgresql.secretKey" . }}: "{{ .Values.postgresql.postgresqlPassword | b64enc }}"
Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube. See the Configuration section to configure the PVC or to disable persistence.
This chart provides support for Ingress resource. If you have an available Ingress Controller such as Nginx or Traefik you maybe want to set ingress.enabled
to true and add ingress.hosts
for the URL. Then, you should be able to access the installation using that address.
To append extra CA Certificates:
Create a ConfigMap with CAs in PEM format, e.g.:
apiVersion: v1
kind: ConfigMap
metadata:
name: ca
namespace: your-wikijs-namespace
data:
certs.pem: |-
-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----
Mount your CAs from the ConfigMap to the Wiki.js pod and set nodeExtraCaCerts
helm variable. Insert the following lines to your Wiki.js values.yaml
, e.g.:
volumeMounts:
- name: ca
mountPath: /cas.pem
subPath: certs.pem
volumes:
- name: ca
configMap:
name: ca
nodeExtraCaCerts: "/cas.pem"