Added kubernetes yaml files
This commit is contained in:
parent
c928b958f4
commit
3efca6cd8b
4
kubernetes/00_namespace.yaml
Normal file
4
kubernetes/00_namespace.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: zammad
|
42
kubernetes/10_pvc.yaml
Normal file
42
kubernetes/10_pvc.yaml
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-postgresql
|
||||
namespace: zammad
|
||||
annotations:
|
||||
volume.beta.kubernetes.io/storage-class: standard
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 10G
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-elasticsearch
|
||||
namespace: zammad
|
||||
annotations:
|
||||
volume.beta.kubernetes.io/storage-class: standard
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 10G
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-home
|
||||
namespace: zammad
|
||||
annotations:
|
||||
volume.beta.kubernetes.io/storage-class: standard
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 10G
|
32
kubernetes/50_statefulset_postgesql.yaml
Normal file
32
kubernetes/50_statefulset_postgesql.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
apiVersion: apps/v1beta1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: zammad-postgresql
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: database
|
||||
app: postgresql
|
||||
spec:
|
||||
serviceName: zammad-postgresql
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: database
|
||||
app: postgresql
|
||||
spec:
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: zammad-postgresql
|
||||
persistentVolumeClaim:
|
||||
claimName: zammad-postgresql
|
||||
containers:
|
||||
- name: zammad-postgresql
|
||||
image: zammad/zammad-docker-compose:zammad-postgresql
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
name: postgresql
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/postgresql
|
||||
name: zammad-postgresql
|
32
kubernetes/51_statefulset_elasticsearch.yaml
Normal file
32
kubernetes/51_statefulset_elasticsearch.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
apiVersion: apps/v1beta1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: zammad-elasticsearch
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: database
|
||||
app: elasticsearch
|
||||
spec:
|
||||
serviceName: zammad-elasticsearch
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: searchindex
|
||||
app: elasticsearch
|
||||
spec:
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: zammad-elasticsearch
|
||||
persistentVolumeClaim:
|
||||
claimName: zammad-elasticsearch
|
||||
containers:
|
||||
- name: zammad-elasticsearch
|
||||
image: zammad/zammad-docker-compose:zammad-elasticsearch
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
name: elasticsearch
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- mountPath: /usr/share/elasticsearch/data
|
||||
name: zammad-elasticsearch
|
33
kubernetes/52_statefulset_railsserver.yaml
Normal file
33
kubernetes/52_statefulset_railsserver.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
apiVersion: apps/v1beta1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: zammad-railsserver
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: railsserver
|
||||
app: zammad
|
||||
spec:
|
||||
serviceName: zammad-railsserver
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: railsserver
|
||||
app: zammad
|
||||
spec:
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: zammad-home
|
||||
persistentVolumeClaim:
|
||||
claimName: zammad-home
|
||||
containers:
|
||||
- name: zammad-railsserver
|
||||
image: zammad/zammad-docker-compose:zammad-railsserver
|
||||
imagePullPolicy: Always
|
||||
args: ["zammad-railsserver"]
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: railsserver
|
||||
volumeMounts:
|
||||
- mountPath: /home/zammad
|
||||
name: zammad-home
|
33
kubernetes/53_statefulset_websocket.yaml
Normal file
33
kubernetes/53_statefulset_websocket.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
apiVersion: apps/v1beta1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: zammad-websocket
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: websocket
|
||||
app: zammad
|
||||
spec:
|
||||
serviceName: zammad-websocket
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: websocket
|
||||
app: zammad
|
||||
spec:
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: zammad-home
|
||||
persistentVolumeClaim:
|
||||
claimName: zammad-home
|
||||
containers:
|
||||
- name: zammad-websocket
|
||||
image: zammad/zammad-docker-compose:zammad
|
||||
args: [ "zammad-websocket" ]
|
||||
ports:
|
||||
- containerPort: 6042
|
||||
name: websocket
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- mountPath: /home/zammad
|
||||
name: zammad-home
|
32
kubernetes/54_statefulset_nginx.yaml
Normal file
32
kubernetes/54_statefulset_nginx.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
apiVersion: apps/v1beta1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: zammad-nginx
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: nginx
|
||||
app: zammad
|
||||
spec:
|
||||
serviceName: zammad-nginx
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: nginx
|
||||
app: zammad
|
||||
spec:
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: zammad-home
|
||||
persistentVolumeClaim:
|
||||
claimName: zammad-home
|
||||
containers:
|
||||
- name: zammad-nginx
|
||||
image: zammad/zammad-docker-compose:zammad-nginx
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: nginx
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- mountPath: /home/zammad
|
||||
name: zammad-home
|
30
kubernetes/55_statefulset_scheduler.yaml
Normal file
30
kubernetes/55_statefulset_scheduler.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
apiVersion: apps/v1beta1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: zammad-scheduler
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: scheduler
|
||||
app: zammad
|
||||
spec:
|
||||
serviceName: zammad-scheduler
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
component: scheduler
|
||||
app: zammad
|
||||
spec:
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: zammad-home
|
||||
persistentVolumeClaim:
|
||||
claimName: zammad-home
|
||||
containers:
|
||||
- name: zammad-scheduler
|
||||
image: zammad/zammad-docker-compose:zammad
|
||||
args: [ "zammad-scheduler" ]
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- mountPath: /home/zammad
|
||||
name: zammad-home
|
85
kubernetes/80_sv.yaml
Normal file
85
kubernetes/80_sv.yaml
Normal file
@ -0,0 +1,85 @@
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-postgresql
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: database
|
||||
app: postgresql
|
||||
spec:
|
||||
ports:
|
||||
- name: postgresql
|
||||
port: 5432
|
||||
selector:
|
||||
component: database
|
||||
app: postgresql
|
||||
type: NodePort
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-elasticsearch
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: searchindex
|
||||
app: elasticsearch
|
||||
spec:
|
||||
ports:
|
||||
- name: elasticsearch
|
||||
port: 9200
|
||||
selector:
|
||||
component: searchindex
|
||||
app: elasticsearch
|
||||
type: NodePort
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-railsserver
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: railsserver
|
||||
app: zammad
|
||||
spec:
|
||||
ports:
|
||||
- name: railsserver
|
||||
port: 3000
|
||||
selector:
|
||||
component: railsserver
|
||||
app: zammad
|
||||
type: NodePort
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-websocket
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: websocket
|
||||
app: zammad
|
||||
spec:
|
||||
ports:
|
||||
- name: websocket
|
||||
port: 6042
|
||||
selector:
|
||||
component: websocket
|
||||
app: zammad
|
||||
type: NodePort
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: zammad-nginx
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: nginx
|
||||
app: zammad
|
||||
spec:
|
||||
ports:
|
||||
- name: nginx
|
||||
port: 80
|
||||
selector:
|
||||
component: nginx
|
||||
app: zammad
|
||||
type: NodePort
|
25
kubernetes/90_ingress.yaml
Normal file
25
kubernetes/90_ingress.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
kind: Ingress
|
||||
apiVersion: extensions/v1beta1
|
||||
metadata:
|
||||
name: zammad.example.com
|
||||
namespace: zammad
|
||||
labels:
|
||||
component: website
|
||||
app: zammad
|
||||
host: zammad.example.com
|
||||
annotations:
|
||||
ingress.kubernetes.io/ssl-redirect: 'true'
|
||||
kubernetes.io/tls-acme: 'true'
|
||||
spec:
|
||||
tls:
|
||||
- hosts:
|
||||
- zammad.example.com
|
||||
secretName: zammad-example-com-tls
|
||||
rules:
|
||||
- host: zammad.example.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: zammad-nginx
|
||||
servicePort: 80
|
7
kubernetes/Readme.md
Normal file
7
kubernetes/Readme.md
Normal file
@ -0,0 +1,7 @@
|
||||
# Zammad kubernetes example deployment
|
||||
|
||||
## Perquisites
|
||||
|
||||
- On every node you need to set `sysctl -w vm.max_map_count=262144`
|
||||
- Change the ingress to your needs.
|
||||
- Hit `kubectl apply -f ./` and wait till everything is setup.
|
Loading…
Reference in New Issue
Block a user