removed Kubernetes manifests as Helm chart will be ready soon - just wait for #35c3 ;-)

This commit is contained in:
André Bauer 2018-12-26 02:08:33 +01:00
parent 0b0e4c0cbf
commit 1cf7e94f43
11 changed files with 0 additions and 520 deletions

View File

@ -1,4 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: zammad

View File

@ -1,55 +0,0 @@
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: zammad
namespace: zammad
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: zammad-backup
namespace: zammad
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: zammad-elasticsearch
namespace: zammad
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: zammad-postgresql
namespace: zammad
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G

View File

@ -1,59 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-configmap
namespace: zammad
data:
config: |-
#
# kubernetes nginx config for zammad
#
server_tokens off;
upstream zammad-railsserver {
server localhost:3000;
}
upstream zammad-websocket {
server localhost:6042;
}
server {
listen 80;
server_name _;
root /opt/zammad/public;
access_log /dev/stdout;
error_log /dev/stderr;
client_max_body_size 50M;
location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico) {
expires max;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header CLIENT_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 86400;
proxy_pass http://zammad-websocket;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header CLIENT_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 180;
proxy_pass http://zammad-railsserver;
gzip on;
gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
gzip_proxied any;
}
}

View File

@ -1,112 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zammad
namespace: zammad
spec:
replicas: 1
revisionHistoryLimit: 1
template:
metadata:
labels:
app: zammad
component: services
spec:
terminationGracePeriodSeconds: 10
volumes:
- name: zammad
persistentVolumeClaim:
claimName: zammad
- name: nginx-configmap
configMap:
name: nginx-configmap
items:
- key: config
path: default
initContainers:
- name: zammad-init
image: zammad/zammad-docker-compose:zammad
args: [ "zammad-init" ]
imagePullPolicy: Always
volumeMounts:
- name: zammad
mountPath: /opt/zammad
containers:
- name: zammad-nginx
image: zammad/zammad-docker-compose:zammad
args: [ "zammad-nginx" ]
ports:
- containerPort: 80
name: nginx
imagePullPolicy: Always
volumeMounts:
- name: zammad
mountPath: /opt/zammad
- name: nginx-configmap
mountPath: /etc/nginx/sites-enabled
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 60
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 60
periodSeconds: 10
- name: zammad-railsserver
image: zammad/zammad-docker-compose:zammad
args: ["zammad-railsserver"]
imagePullPolicy: Always
ports:
- name: railsserver
containerPort: 3000
volumeMounts:
- name: zammad
mountPath: /opt/zammad
readinessProbe:
httpGet:
path: /
port: 3000
initialDelaySeconds: 90
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 3000
initialDelaySeconds: 90
periodSeconds: 10
- name: zammad-scheduler
image: zammad/zammad-docker-compose:zammad
args: [ "zammad-scheduler" ]
imagePullPolicy: Always
volumeMounts:
- name: zammad
mountPath: /opt/zammad
- name: zammad-websocket
image: zammad/zammad-docker-compose:zammad
args: [ "zammad-websocket" ]
imagePullPolicy: Always
ports:
- name: websocket
containerPort: 6042
volumeMounts:
- name: zammad
mountPath: /opt/zammad
readinessProbe:
tcpSocket:
port: 6042
initialDelaySeconds: 60
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 6042
initialDelaySeconds: 60
periodSeconds: 10

View File

@ -1,34 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zammad-memcached
namespace: zammad
spec:
replicas: 1
revisionHistoryLimit: 1
template:
metadata:
labels:
app: memcached
component: cache
spec:
terminationGracePeriodSeconds: 10
containers:
- name: zammad-memcached
image: zammad/zammad-docker-compose:zammad-memcached
args: [ "zammad-memcached" ]
ports:
- containerPort: 11211
name: memcached
imagePullPolicy: Always
readinessProbe:
tcpSocket:
port: 11211
initialDelaySeconds: 20
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 11211
initialDelaySeconds: 10
periodSeconds: 10

View File

@ -1,40 +0,0 @@
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: zammad-postgresql
namespace: zammad
spec:
replicas: 1
revisionHistoryLimit: 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:
- name: postgresql
containerPort: 5432
imagePullPolicy: Always
volumeMounts:
- name: zammad-postgresql
mountPath: /var/lib/postgresql
readinessProbe:
tcpSocket:
port: 5432
initialDelaySeconds: 60
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 5432
initialDelaySeconds: 60
periodSeconds: 10

View File

@ -1,53 +0,0 @@
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: zammad-elasticsearch
namespace: zammad
labels:
app: elasticsearch
component: searchindex
spec:
serviceName: zammad-elasticsearch
replicas: 1
template:
metadata:
labels:
component: searchindex
app: elasticsearch
spec:
terminationGracePeriodSeconds: 10
volumes:
- name: zammad-elasticsearch
persistentVolumeClaim:
claimName: zammad-elasticsearch
initContainers:
- name: prepare-container
image: busybox
command: [ "sh", "-c", "sysctl -w vm.max_map_count=262144; chown -R 1000:1000 /usr/share/elasticsearch"]
securityContext:
privileged: true
volumeMounts:
- mountPath: /usr/share/elasticsearch/data
name: 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
readinessProbe:
httpGet:
path: /_cluster/health?local=true
port: 9200
initialDelaySeconds: 60
periodSeconds: 10
livenessProbe:
httpGet:
path: /_cluster/health?local=true
port: 9200
initialDelaySeconds: 60
periodSeconds: 10

View File

@ -1,23 +0,0 @@
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: backup
namespace: zammad
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
volumes:
- name: zammad-backup
persistentVolumeClaim:
claimName: zammad-backup
containers:
- name: zammad-backup
image: zammad/zammad-docker-compose:zammad-postgresql
args: [ "zammad-backup-db" ]
volumeMounts:
- name: zammad-backup
mountPath: /var/tmp/zammad

View File

@ -1,71 +0,0 @@
---
kind: Service
apiVersion: v1
metadata:
name: zammad
namespace: zammad
labels:
app: zammad
component: services
spec:
ports:
- name: nginx
port: 80
selector:
app: zammad
component: services
type: NodePort
---
kind: Service
apiVersion: v1
metadata:
name: zammad-elasticsearch
namespace: zammad
labels:
app: elasticsearch
component: searchindex
spec:
ports:
- name: elasticsearch
port: 9200
selector:
app: elasticsearch
component: searchindex
type: NodePort
---
kind: Service
apiVersion: v1
metadata:
name: zammad-memcached
namespace: zammad
labels:
app: memcached
component: cache
spec:
ports:
- name: memcached
port: 11211
selector:
app: memcached
component: cache
type: NodePort
---
kind: Service
apiVersion: v1
metadata:
name: zammad-postgresql
namespace: zammad
labels:
app: postgresql
component: database
spec:
ports:
- name: postgresql
port: 5432
selector:
app: postgresql
component: database
type: NodePort

View File

@ -1,26 +0,0 @@
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: zammad.example.com
namespace: zammad
labels:
app: zammad
component: services
host: zammad.example.com
annotations:
ingress.kubernetes.io/ssl-redirect: 'true'
kubernetes.io/tls-acme: 'true'
ingress.kubernetes.io/proxy-body-size: 50m
spec:
tls:
- hosts:
- zammad.example.com
secretName: zammad-example-com-tls
rules:
- host: zammad.example.com
http:
paths:
- path: /
backend:
serviceName: zammad
servicePort: 80

View File

@ -1,43 +0,0 @@
# 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
- Kubernetes 1.8.x Cluster with at least 1 worker node, 2 CPUs and 6 GB of RAM
- 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=6144 --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 proxy
* kubectl apply -f .
* open dashboard in browser
* http://127.0.0.1:8001/ui
* if everything is green add backends / ingress rules to create external endpoint
## If you want to help to improve the Kuberntes deployments here are some todos:
* add cpu & mem limits
* add rolling upgrade strategy to deployments
* add RBAC