WIP: StatefulSet config for gitea-server
A deployment cannot actually attach the same persistent storage across nodes. We have to switch to a StatefulSet for any and all programs that need shared persistent storage. I tried applying this config, but it didn't attach the same volume/disk as before, so I had to revert to the Deployment for now.
This commit is contained in:
		
							parent
							
								
									2ab0db6c2a
								
							
						
					
					
						commit
						1928fdad6e
					
				
							
								
								
									
										103
									
								
								kubernetes/gitea-server-statefulset.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								kubernetes/gitea-server-statefulset.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,103 @@
 | 
				
			|||||||
 | 
					apiVersion: apps/v1
 | 
				
			||||||
 | 
					kind: StatefulSet
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: gitea-server
 | 
				
			||||||
 | 
					  labels:
 | 
				
			||||||
 | 
					    app: gitea
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  serviceName: gitea-server
 | 
				
			||||||
 | 
					  updateStrategy:
 | 
				
			||||||
 | 
					    type: RollingUpdate
 | 
				
			||||||
 | 
					  replicas: 1
 | 
				
			||||||
 | 
					  selector:
 | 
				
			||||||
 | 
					    matchLabels:
 | 
				
			||||||
 | 
					      app: gitea
 | 
				
			||||||
 | 
					  template:
 | 
				
			||||||
 | 
					    metadata:
 | 
				
			||||||
 | 
					      labels:
 | 
				
			||||||
 | 
					        name: gitea-server
 | 
				
			||||||
 | 
					        app: gitea
 | 
				
			||||||
 | 
					    spec:
 | 
				
			||||||
 | 
					      initContainers:
 | 
				
			||||||
 | 
					        - name: init-config
 | 
				
			||||||
 | 
					          # This is a busybox image with our gitea customizations saved to
 | 
				
			||||||
 | 
					          # /custom, built using ./script/build_customizations_image from the
 | 
				
			||||||
 | 
					          # root of the repo
 | 
				
			||||||
 | 
					          image: eu.gcr.io/fluted-magpie-218106/gitea_custom:0.1.2
 | 
				
			||||||
 | 
					          command: [
 | 
				
			||||||
 | 
					            'sh', '-c',
 | 
				
			||||||
 | 
					            'mkdir -p /data/gitea/conf && mkdir -p /data/gitea/https && cp /root/conf/app.ini /data/gitea/conf/app.ini && chown 1000:1000 /data/gitea/conf/app.ini && chmod 660 /data/gitea/conf/app.ini && cp /root/conf/*.pem /data/gitea/https && chmod 600 /data/gitea/https/*.pem && cp -R /custom/* /data/gitea && chown -R 1000:1000 /data/gitea'
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					          volumeMounts:
 | 
				
			||||||
 | 
					          - mountPath: /data
 | 
				
			||||||
 | 
					            name: gitea-server-data
 | 
				
			||||||
 | 
					          - mountPath: /root/conf
 | 
				
			||||||
 | 
					            name: config
 | 
				
			||||||
 | 
					      containers:
 | 
				
			||||||
 | 
					      - name: gitea-server
 | 
				
			||||||
 | 
					        image: gitea/gitea:1.10.1
 | 
				
			||||||
 | 
					        ports:
 | 
				
			||||||
 | 
					        - containerPort: 3000
 | 
				
			||||||
 | 
					        - containerPort: 3001
 | 
				
			||||||
 | 
					        - containerPort: 22
 | 
				
			||||||
 | 
					        volumeMounts:
 | 
				
			||||||
 | 
					        - mountPath: /data
 | 
				
			||||||
 | 
					          name: gitea-server-data
 | 
				
			||||||
 | 
					        resources:
 | 
				
			||||||
 | 
					          requests:
 | 
				
			||||||
 | 
					            cpu: 150m
 | 
				
			||||||
 | 
					            memory: 256Mi
 | 
				
			||||||
 | 
					          limits:
 | 
				
			||||||
 | 
					            cpu: 250m
 | 
				
			||||||
 | 
					            memory: 512Mi
 | 
				
			||||||
 | 
					      restartPolicy: Always
 | 
				
			||||||
 | 
					      volumes:
 | 
				
			||||||
 | 
					      - name: config
 | 
				
			||||||
 | 
					        secret:
 | 
				
			||||||
 | 
					          secretName: gitea-config
 | 
				
			||||||
 | 
					          items:
 | 
				
			||||||
 | 
					            - key: app.ini
 | 
				
			||||||
 | 
					              path: app.ini
 | 
				
			||||||
 | 
					              mode: 256
 | 
				
			||||||
 | 
					            - key: cert.pem
 | 
				
			||||||
 | 
					              path: cert.pem
 | 
				
			||||||
 | 
					              mode: 256
 | 
				
			||||||
 | 
					            - key: key.pem
 | 
				
			||||||
 | 
					              path: key.pem
 | 
				
			||||||
 | 
					              mode: 256
 | 
				
			||||||
 | 
					  volumeClaimTemplates:
 | 
				
			||||||
 | 
					    - metadata:
 | 
				
			||||||
 | 
					        name: gitea-server-data
 | 
				
			||||||
 | 
					        labels:
 | 
				
			||||||
 | 
					          app: gitea
 | 
				
			||||||
 | 
					      spec:
 | 
				
			||||||
 | 
					        accessModes:
 | 
				
			||||||
 | 
					        - ReadWriteOnce
 | 
				
			||||||
 | 
					        resources:
 | 
				
			||||||
 | 
					          requests:
 | 
				
			||||||
 | 
					            storage: 20Gi
 | 
				
			||||||
 | 
					        storageClassName: gcePersistentDisk
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					apiVersion: v1
 | 
				
			||||||
 | 
					kind: Service
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: gitea-server
 | 
				
			||||||
 | 
					  labels:
 | 
				
			||||||
 | 
					    name: gitea-server
 | 
				
			||||||
 | 
					    app: gitea
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  type: LoadBalancer
 | 
				
			||||||
 | 
					  # preserves the client source IP
 | 
				
			||||||
 | 
					  externalTrafficPolicy: Local
 | 
				
			||||||
 | 
					  ports:
 | 
				
			||||||
 | 
					    - name: "ssh"
 | 
				
			||||||
 | 
					      port: 22
 | 
				
			||||||
 | 
					      targetPort: 22
 | 
				
			||||||
 | 
					    - name: "http"
 | 
				
			||||||
 | 
					      port: 80
 | 
				
			||||||
 | 
					      targetPort: 3001
 | 
				
			||||||
 | 
					    - name: "https"
 | 
				
			||||||
 | 
					      port: 443
 | 
				
			||||||
 | 
					      targetPort: 3000
 | 
				
			||||||
 | 
					  selector:
 | 
				
			||||||
 | 
					    name: gitea-server
 | 
				
			||||||
		Reference in New Issue
	
	Block a user