_vaultwarden.tpl 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. {{ range $env := . }}
  39. {{ $env.name }}: {{ $env.value }}
  40. {{ end }}
  41. {{ end }}
  42. probes:
  43. liveness:
  44. enabled: true
  45. type: exec
  46. command: /healthcheck.sh
  47. readiness:
  48. enabled: true
  49. type: exec
  50. command: /healthcheck.sh
  51. startup:
  52. enabled: true
  53. type: exec
  54. command: /healthcheck.sh
  55. initContainers:
  56. {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions"
  57. "UID" .Values.vaultwardenRunAs.user
  58. "GID" .Values.vaultwardenRunAs.group
  59. "type" "install") | nindent 8 }}
  60. {{- include "ix.v1.common.app.postgresWait" (dict "name" "postgres-wait"
  61. "secretName" "postgres-creds") | nindent 8 }}
  62. {{/* Service */}}
  63. service:
  64. vaultwarden:
  65. enabled: true
  66. primary: true
  67. type: NodePort
  68. targetSelector: vaultwarden
  69. ports:
  70. webui:
  71. enabled: true
  72. primary: true
  73. port: {{ .Values.vaultwardenNetwork.webPort }}
  74. nodePort: {{ .Values.vaultwardenNetwork.webPort }}
  75. targetSelector: vaultwarden
  76. ws:
  77. enabled: {{ .Values.vaultwardenNetwork.wsEnabled }}
  78. port: {{ .Values.vaultwardenNetwork.wsPort }}
  79. nodePort: {{ .Values.vaultwardenNetwork.wsPort }}
  80. targetSelector: vaultwarden
  81. {{/* Persistence */}}
  82. persistence:
  83. data:
  84. enabled: true
  85. type: {{ .Values.vaultwardenStorage.data.type }}
  86. datasetName: {{ .Values.vaultwardenStorage.data.datasetName | default "" }}
  87. hostPath: {{ .Values.vaultwardenStorage.data.hostPath | default "" }}
  88. targetSelector:
  89. vaultwarden:
  90. vaultwarden:
  91. mountPath: /data
  92. 01-permissions:
  93. mountPath: /mnt/directories/data
  94. {{- if .Values.vaultwardenNetwork.certificateID }}
  95. cert:
  96. enabled: true
  97. type: secret
  98. objectName: vaultwarden-cert
  99. defaultMode: "0600"
  100. items:
  101. - key: tls.key
  102. path: private.key
  103. - key: tls.crt
  104. path: public.crt
  105. targetSelector:
  106. vaultwarden:
  107. vaultwarden:
  108. mountPath: /certs
  109. readOnly: true
  110. scaleCertificate:
  111. vaultwarden-cert:
  112. enabled: true
  113. id: {{ .Values.vaultwardenNetwork.certificateID }}
  114. {{- end -}}
  115. {{- end -}}