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