_vaultwarden.tpl 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. {{- define "vaultwarden.workload" -}}
  2. workload:
  3. vaultwarden:
  4. enabled: true
  5. primary: true
  6. type: Deployment
  7. podSpec:
  8. hostNetwork: {{ .Values.vaultwardenNetwork.hostNetwork }}
  9. containers:
  10. vaultwarden:
  11. enabled: true
  12. primary: true
  13. imageSelector: image
  14. securityContext:
  15. runAsUser: {{ .Values.vaultwardenRunAs.user }}
  16. runAsGroup: {{ .Values.vaultwardenRunAs.group }}
  17. env:
  18. ROCKET_PORT: {{ .Values.vaultwardenNetwork.webPort }}
  19. WEBSOCKET_PORT: {{ .Values.vaultwardenNetwork.wsPort }}
  20. WEBSOCKET_ENABLED: {{ .Values.vaultwardenNetwork.wsEnabled }}
  21. DATABASE_URL:
  22. secretKeyRef:
  23. name: postgres-creds
  24. key: POSTGRES_URL
  25. {{ if .Values.vaultwardenConfig.adminToken }}
  26. ADMIN_TOKEN:
  27. secretKeyRef:
  28. name: vaultwarden
  29. key: ADMIN_TOKEN
  30. {{ end }}
  31. {{ if .Values.vaultwardenNetwork.certificateID }}
  32. ROCKET_TLS: '{certs="/certs/public.crt",key="/certs/private.key"}'
  33. {{ end }}
  34. {{ with .Values.vaultwardenNetwork.domain }}
  35. DOMAIN: {{ . }}
  36. {{ end }}
  37. {{ with .Values.vaultwardenConfig.additionalEnvs }}
  38. envList:
  39. {{ range $env := . }}
  40. - name: {{ $env.name }}
  41. value: {{ $env.value }}
  42. {{ end }}
  43. {{ end }}
  44. probes:
  45. liveness:
  46. enabled: true
  47. type: exec
  48. command: /healthcheck.sh
  49. readiness:
  50. enabled: true
  51. type: exec
  52. command: /healthcheck.sh
  53. startup:
  54. enabled: true
  55. type: exec
  56. command: /healthcheck.sh
  57. initContainers:
  58. {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions"
  59. "UID" .Values.vaultwardenRunAs.user
  60. "GID" .Values.vaultwardenRunAs.group
  61. "mode" "check"
  62. "type" "install") | nindent 8 }}
  63. {{- include "ix.v1.common.app.postgresWait" (dict "name" "postgres-wait"
  64. "secretName" "postgres-creds") | nindent 8 }}
  65. {{/* Service */}}
  66. service:
  67. vaultwarden:
  68. enabled: true
  69. primary: true
  70. type: NodePort
  71. targetSelector: vaultwarden
  72. ports:
  73. webui:
  74. enabled: true
  75. primary: true
  76. port: {{ .Values.vaultwardenNetwork.webPort }}
  77. nodePort: {{ .Values.vaultwardenNetwork.webPort }}
  78. targetSelector: vaultwarden
  79. ws:
  80. enabled: {{ .Values.vaultwardenNetwork.wsEnabled }}
  81. port: {{ .Values.vaultwardenNetwork.wsPort }}
  82. nodePort: {{ .Values.vaultwardenNetwork.wsPort }}
  83. targetSelector: vaultwarden
  84. {{/* Persistence */}}
  85. persistence:
  86. data:
  87. enabled: true
  88. {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.vaultwardenStorage.data) | nindent 4 }}
  89. targetSelector:
  90. vaultwarden:
  91. vaultwarden:
  92. mountPath: /data
  93. {{- if and (eq .Values.vaultwardenStorage.data.type "ixVolume")
  94. (not (.Values.vaultwardenStorage.data.ixVolumeConfig | default dict).aclEnable) }}
  95. 01-permissions:
  96. mountPath: /mnt/directories/data
  97. {{- end }}
  98. {{- range $idx, $storage := .Values.vaultwardenStorage.additionalStorages }}
  99. {{ printf "vaultwarden-%v:" (int $idx) }}
  100. enabled: true
  101. {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }}
  102. targetSelector:
  103. vaultwarden:
  104. vaultwarden:
  105. mountPath: {{ $storage.mountPath }}
  106. {{- if and (eq $storage.type "ixVolume") (not ($storage.ixVolumeConfig | default dict).aclEnable) }}
  107. 01-permissions:
  108. mountPath: /mnt/directories{{ $storage.mountPath }}
  109. {{- end }}
  110. {{- end }}
  111. {{- if .Values.vaultwardenNetwork.certificateID }}
  112. cert:
  113. enabled: true
  114. type: secret
  115. objectName: vaultwarden-cert
  116. defaultMode: "0600"
  117. items:
  118. - key: tls.key
  119. path: private.key
  120. - key: tls.crt
  121. path: public.crt
  122. targetSelector:
  123. vaultwarden:
  124. vaultwarden:
  125. mountPath: /certs
  126. readOnly: true
  127. scaleCertificate:
  128. vaultwarden-cert:
  129. enabled: true
  130. id: {{ .Values.vaultwardenNetwork.certificateID }}
  131. {{- end -}}
  132. {{- end -}}