129 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| {{- $fullName := include "wg-access-server.fullname" . -}}
 | |
| {{ $secretName := $fullName }}
 | |
| {{- if .Values.config.existingSecret -}}
 | |
| {{ $secretName = .Values.config.existingSecret }}
 | |
| {{ end -}}
 | |
| apiVersion: apps/v1
 | |
| kind: Deployment
 | |
| metadata:
 | |
|   name: {{ include "wg-access-server.fullname" . }}
 | |
|   labels:
 | |
|     {{- include "wg-access-server.labels" . | nindent 4 }}
 | |
| spec:
 | |
|   replicas: {{ .Values.replicas }}
 | |
|   strategy:
 | |
|     {{- if .Values.persistence.enabled  }}
 | |
|     type: {{ .Values.strategy.type | default "Recreate" | quote }}
 | |
|     {{- else }}
 | |
|     type: {{ .Values.strategy.type | default "RollingUpdate" | quote }}
 | |
|     {{- end }}
 | |
|   selector:
 | |
|     matchLabels:
 | |
|       {{- include "wg-access-server.selectorLabels" . | nindent 6 }}
 | |
|   template:
 | |
|     metadata:
 | |
|       annotations:
 | |
|         checksum/configmap: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
 | |
|       labels:
 | |
|         {{- include "wg-access-server.selectorLabels" . | nindent 8 }}
 | |
|     spec:
 | |
|     {{- with .Values.imagePullSecrets }}
 | |
|       imagePullSecrets:
 | |
|         {{- toYaml . | nindent 8 }}
 | |
|     {{- end }}
 | |
|       containers:
 | |
|         - name: {{ .Chart.Name }}
 | |
|           securityContext:
 | |
|             capabilities:
 | |
|               add: ['NET_ADMIN']
 | |
|           image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
 | |
|           imagePullPolicy: {{ .Values.image.pullPolicy }}
 | |
|           ports:
 | |
|             - name: http
 | |
|               containerPort: 8000
 | |
|               protocol: TCP
 | |
|             - name: wireguard
 | |
|               containerPort: 51820
 | |
|               protocol: UDP
 | |
|           env:
 | |
|             {{- if .Values.wireguard.config.privateKey }}
 | |
|             - name: WG_WIREGUARD_PRIVATE_KEY
 | |
|               valueFrom:
 | |
|                 secretKeyRef:
 | |
|                   name: "{{ $secretName }}"
 | |
|                   key: privateKey
 | |
|             {{- end }}
 | |
|             {{- if .Values.web.config.adminUsername }}
 | |
|             - name: WG_ADMIN_USERNAME
 | |
|               valueFrom:
 | |
|                 secretKeyRef:
 | |
|                   name: "{{ $secretName }}"
 | |
|                   key: adminUsername
 | |
|             {{- end}}
 | |
|             {{- if .Values.web.config.adminPassword }}
 | |
|             - name: WG_ADMIN_PASSWORD
 | |
|               valueFrom:
 | |
|                 secretKeyRef:
 | |
|                   name: "{{ $secretName }}"
 | |
|                   key: adminPassword
 | |
|             {{- end}}
 | |
|             {{- if .Values.config.csiSecretsStore }}
 | |
|             - name: WG_CONFIG
 | |
|               value: /secrets/config.yaml
 | |
|             {{- end}}
 | |
|           volumeMounts:
 | |
|             - name: tun
 | |
|               mountPath: /dev/net/tun
 | |
|             - name: data
 | |
|               mountPath: /data
 | |
|             {{- if .Values.config.csiSecretsStore }}
 | |
|             - name: config
 | |
|               mountPath: /secrets
 | |
|             {{- else }}
 | |
|             - name: config
 | |
|               mountPath: /config.yaml
 | |
|               subPath: config.yaml
 | |
|             {{- end}}
 | |
|           readinessProbe:
 | |
|             httpGet:
 | |
|               path: /health
 | |
|               port: http
 | |
|           resources:
 | |
|             {{- toYaml .Values.resources | nindent 12 }}
 | |
|       volumes:
 | |
|         - name: tun
 | |
|           hostPath:
 | |
|             type: 'CharDevice'
 | |
|             path: /dev/net/tun
 | |
|         - name: data
 | |
|         {{- if .Values.persistence.enabled }}
 | |
|           persistentVolumeClaim:
 | |
|             claimName: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ $fullName }}{{- end }}
 | |
|         {{- end }}
 | |
|         {{- if not .Values.persistence.enabled }}
 | |
|           emptyDir: {}
 | |
|         {{- end }}
 | |
|         {{- if .Values.config.csiSecretsStore }}
 | |
|         - name: config
 | |
|           csi:
 | |
|             driver: secrets-store.csi.k8s.io
 | |
|             readOnly: true
 | |
|             volumeAttributes:
 | |
|               secretProviderClass: app-secrets
 | |
|         {{- else }}
 | |
|         - name: config
 | |
|           configMap:
 | |
|             name: "{{ $fullName }}"
 | |
|         {{- end }}
 | |
|       {{- with .Values.nodeSelector }}
 | |
|       nodeSelector:
 | |
|         {{- toYaml . | nindent 8 }}
 | |
|       {{- end }}
 | |
|     {{- with .Values.affinity }}
 | |
|       affinity:
 | |
|         {{- toYaml . | nindent 8 }}
 | |
|     {{- end }}
 | |
|     {{- with .Values.tolerations }}
 | |
|       tolerations:
 | |
|         {{- toYaml . | nindent 8 }}
 | |
|     {{- end }}
 |