deployment.yaml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: {{ include "openvpn.fullname" . }}
  5. labels:
  6. {{- include "openvpn.labels" . | nindent 4 }}
  7. spec:
  8. replicas: 1
  9. selector:
  10. matchLabels:
  11. {{- include "openvpn.selectorLabels" . | nindent 6 }}
  12. template:
  13. metadata:
  14. {{- with .Values.openvpn.podAnnotations }}
  15. annotations:
  16. {{- toYaml . | nindent 8 }}
  17. {{- end }}
  18. labels:
  19. {{- include "openvpn.selectorLabels" . | nindent 8 }}
  20. spec:
  21. {{- if .Values.registry_secret_data }}
  22. imagePullSecrets:
  23. - name: {{ include "openvpn.fullname" . }}-registry-secret
  24. {{- end }}
  25. hostNetwork: true
  26. containers:
  27. - name: {{ .Chart.Name }}
  28. command: ["/scripts/startscript"]
  29. {{- if .Values.openvpn.healthcheck }}
  30. livenessProbe:
  31. exec:
  32. command:
  33. - /scripts/healthcheck
  34. initialDelaySeconds: 20
  35. periodSeconds: 60
  36. failureThreshold: 5
  37. {{- end }}
  38. securityContext:
  39. capabilities:
  40. add:
  41. - NET_ADMIN
  42. - MKNOD
  43. image: "{{ .Values.openvpn.image }}:{{ .Values.openvpn.tag | default "latest" }}"
  44. imagePullPolicy: {{ .Values.openvpn.pullPolicy }}
  45. env:
  46. - name: TZ
  47. value: Europe/Moscow
  48. resources:
  49. {{- toYaml .Values.openvpn.resources | nindent 12 }}
  50. volumeMounts:
  51. - name: keys
  52. mountPath: /etc/openvpn/keys/
  53. - name: ccd
  54. mountPath: /etc/openvpn/ccd/
  55. - name: configuration
  56. mountPath: /etc/openvpn/configuration/
  57. - name: scripts
  58. mountPath: /scripts/
  59. - name: {{ .Chart.Name }}-stop
  60. image: "{{ .Values.openvpn.image }}:{{ .Values.openvpn.tag | default "latest" }}"
  61. imagePullPolicy: {{ .Values.openvpn.pullPolicy }}
  62. command: ["sleep","infinity"]
  63. lifecycle:
  64. preStop:
  65. exec:
  66. command: ["/bin/bash","-c","/scripts/stopscript"]
  67. volumeMounts:
  68. - name: scripts
  69. mountPath: /scripts/
  70. securityContext:
  71. capabilities:
  72. add:
  73. - NET_ADMIN
  74. - MKNOD
  75. volumes:
  76. - name: keys
  77. secret:
  78. secretName: {{ include "openvpn.fullname" . }}-keys
  79. - name: ccd
  80. configMap:
  81. name: {{ include "openvpn.fullname" . }}-ccd
  82. - name: configuration
  83. configMap:
  84. name: {{ include "openvpn.fullname" . }}-configuration
  85. - name: scripts
  86. configMap:
  87. name: {{ include "openvpn.fullname" . }}-scripts
  88. defaultMode: 0755