Skip to content

Commit

Permalink
Improved / added new README sections and fixed ElasticSearch with 1 m…
Browse files Browse the repository at this point in the history
…aster. (#12)

* Added new README section and 2 important env vars for ElasticSearch.

* Added notes for NFS/EFS persistent volumes.  Fixed install instructions.

* Bump chart version to 0.1.8.
  • Loading branch information
jhlav authored and monotek committed Jan 21, 2019
1 parent 2ba9bbc commit c8281d5
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 18 deletions.
2 changes: 1 addition & 1 deletion zammad/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v1
name: zammad
version: 0.1.7
version: 0.1.8
appVersion: 2.8.0
description: Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and e-mails.
home: https://zammad.org
Expand Down
58 changes: 41 additions & 17 deletions zammad/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Zammad Helm Chart

This directory contains a Kubernetes chart to deploy Zammad ticket system
This directory contains a Kubernetes chart to deploy [Zammad](https://zammad.org/) ticket system.


## Prerequisites Details
Expand All @@ -21,8 +21,8 @@ This chart will do the following:
To install the chart use the following:

```console
$ helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
$ helm install incubator/zammad
$ helm repo add zammad https://zammad.github.io
$ helm upgrade --install zammad zammad/zammad --namespace zammad
```


Expand All @@ -32,33 +32,33 @@ The following table lists the configurable parameters of the zammad chart and th

| Parameter | Description | Default |
|-----------------------------------|------------------------------------------|-------------------------------------|
| `useElasticsearch` | use Elasticsearch dependcy | `true` |
| `useMemcached` | use Memcached dependency | `true` |
| `usePostgresql` | use PostgreSQL dependency | `true` |
| `useElasticsearch` | Use Elasticsearch dependency | `true` |
| `useMemcached` | Use Memcached dependency | `true` |
| `usePostgresql` | Use PostgreSQL dependency | `true` |
| `image.repository` | Container image to use | `zammad/zammad-docker-compose` |
| `image.tag` | Container image tag to deploy | `2.8.0-22` |
| `image.pullPolicy` | Container pull policy | `IfNotPresent` |
| `service.type` | Service type | `ClusterIP` |
| `service.port` | Service port | `80` |
| `ingress.enabled` | enable Ingress | `false` |
| `ingress.enabled` | Enable Ingress | `false` |
| `ingress.annotations` | Additional ingress annotations | `` |
| `ingress.path` | Ingress path | `` |
| `ingress.hosts` | Ingress hosts | `` |
| `ingress.tls` | Ingress TLS | `[]` |
| `env` | Environment variables | `See values.yaml` |
| `persistance.enabled` | Enable persistance | `true` |
| `persistance.accessMode` | Access mode | `ReadWriteOnce` |
| `persistance.size | Volume size | `15Gi` |
| `resources.nginx` | Resource usage of Zammads nginx | `{}` |
| `resources.railsserver` | Resource usage of Zammads railsserver | `{}` |
| `resources.scheduler` | Resource usage of Zammads scheduler | `{}` |
| `resources.websocket` | Resource usage of Zammads websocket | `{}` |
| `nodeSelector` | nodeSelector | `{}` |
| `persistence.enabled` | Enable persistence | `true` |
| `persistence.accessMode` | Access mode | `ReadWriteOnce` |
| `persistence.size` | Volume size | `15Gi` |
| `resources.nginx` | Resource usage of Zammad's nginx container | `{}` |
| `resources.railsserver` | Resource usage of Zammad's railsserver container | `{}` |
| `resources.scheduler` | Resource usage of Zammad's scheduler container | `{}` |
| `resources.websocket` | Resource usage of Zammad's websocket container | `{}` |
| `nodeSelector` | Node Selector | `{}` |
| `tolerations` | Tolerations | `[]` |
| `affinity` | affinity | `{}` |
| `affinity` | Affinity | `{}` |
| `elasticsearch.image.repository` | Elasticsearch image repo | `zammad/zammad-docker-compose` |
| `elasticsearch.image.tag` | Elasticsearch image tag | `zammad-elasticsearch-2.8.0-22` |
| `elasticsearch.cluster.xpackEnable` | Elasticsearch Xpack option | `false` |
| `elasticsearch.cluster.xpackEnable` | Enable Elasticsearch Xpack option | `false` |
| `elasticsearch.cluster.env` | Elasticsearch environment variables | `` |
| `elasticsearch.client.replicas` | Elasticsearch client replicas | `1` |
| `elasticsearch.data.terminationGracePeriodSeconds` | Elasticsearch termination Grace Period | `60` |
Expand All @@ -72,6 +72,30 @@ The following table lists the configurable parameters of the zammad chart and th

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.

### Properly configuring Elasticsearch
The default **elasticsearch.yml** set by the Elasticsearch chart expects 2 masters. If using just 1 master replica, there are 3 environment variables which should be set equally to avoid issues starting Elasticsearch.

Set the following environment variables under **elasticsearch.cluster.env**. The Zammad StatefulSet will most likely fail without setting these correctly.

Refer to the Elasticsearch documentation for info on these variables. [[1](https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-gateway.html)] [[2](https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-node.html#split-brain)]

```yaml
elasticsearch:
cluster:
env:
EXPECTED_MASTER_NODES: "1"
MINIMUM_MASTER_NODES: "1"
RECOVER_AFTER_MASTER_NODES: "1"
master:
replicas: 1
```
### Important note for NFS filesystems
For persistent volumes, NFS filesystems should work correctly for **Elasticsearch** and **PostgreSQL**; however, errors will occur if Zammad itself uses an NFS-based persistent volume. Websockets will break completely. This is particularly bad news for receiving notifications from the application and using the Chat module.
Don't use an NFS-based storage class for Zammad's persistent volume.
This is relevant to **EFS** for AWS users, as well.
## Using zammad
Expand Down
3 changes: 3 additions & 0 deletions zammad/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,11 @@ elasticsearch:
tag: "zammad-elasticsearch-2.8.0-22"
cluster:
xpackEnable: false
# See README for proper configuration
env:
EXPECTED_MASTER_NODES: "1"
MINIMUM_MASTER_NODES: "1"
RECOVER_AFTER_MASTER_NODES: "1"
XPACK_MONITORING_ENABLED: false
client:
replicas: 1
Expand Down

0 comments on commit c8281d5

Please sign in to comment.