zammad-docker-compose/kubernetes/Readme.md
André Bauer ce696bad8b
added init container (installation / update)... (#2)
- added memcached container (currently develop branch needed)
- put all zammad services in one kubernetes pod to be able to use empty dir volume for tmp
- switched to kubernetes deployments
- switched to ReadWriteOnce kubernetes volume claims
- added init container to elasticsearch & zammad kubernetes deployments
- added IMAGE_REPO var for docker compose to .env file
- run nginx from zammad container (preparation for stateless updates)
- removed docker-compose-build.yml
- use private docker repos in compose & kubernetes
- change compose volume names
2017-11-26 21:25:57 +01:00

51 lines
1.7 KiB
Markdown

# Zammad kubernetes example deployment
This is a proof of concept of a Kubernetes deployment, which should be considered
beta and not ready for production.
## Prerequisites
- Change the ingress to your needs
## Deploy Zammad
### Install on Minikube
* Install kubectl
* https://kubernetes.io/docs/tasks/tools/install-kubectl/
* Install Minkube
* https://github.com/kubernetes/minikube
* minikube start --memory=4096 --cpus=2
* minikube addons enable ingress
* echo "$(minikube ip) zammad.example.com" | sudo tee -a /etc/hosts
* kubectl apply -f .
* minikube dashboard
* switch to namespace "zammad"
* open "Overview" and wait until all pods are green
* access zammad on:
* http://zammad.example.com
### Install on Google Kubernetes Engine
* connect to cluster via gcloud command
* kubectl apply -f .
## If you want to help to improve the Kuberntes deployments here are some todos:
* fix the nfs mount from entrypoint, which is currently used because of:
* https://github.com/kubernetes/kubernetes/issues/8735
* otherwise you have to manually:
* kubectl apply -f 00_namespace.yaml -f 80_svc.yaml
* kubectl --namespace=zammad describe services zammad-nfs
* use the NFS server IP to update
* 40_deployment_zammad.yaml
* 41_deployment_nginx.yaml
* kubectl apply -f 10_pvc.yaml -f 40_deployment_zammad.yaml -f 41_deployment_nginx.yaml -f 42_deployment_memcached.yaml -f 43_deployment_postgesql.yaml -f 44_deployment_elasticsearch.yaml -f 45_deployment_nfs.yaml -f 90_ingress.yaml
* create config map for nginx
* create a zammad helm chart
* document steps to use existing helm charts for elasticsearch, postgresql and so on
* add cpu & mem limits
* add rolling upgrade strategy to deployments