_tdarr.tpl 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. {{- define "tdarr.workload" -}}
  2. workload:
  3. tdarr:
  4. enabled: true
  5. primary: true
  6. type: Deployment
  7. podSpec:
  8. hostNetwork: false
  9. securityContext:
  10. fsGroup: {{ .Values.tdarrID.group }}
  11. containers:
  12. tdarr:
  13. enabled: true
  14. primary: true
  15. imageSelector: image
  16. securityContext:
  17. runAsUser: 0
  18. runAsGroup: 0
  19. readOnlyRootFilesystem: false
  20. runAsNonRoot: false
  21. capabilities:
  22. add:
  23. - CHOWN
  24. - FOWNER
  25. - SETUID
  26. - SETGID
  27. env:
  28. inContainer: "true"
  29. internalNode: {{ .Values.tdarrConfig.internalNode | quote }}
  30. serverPort: {{ .Values.tdarrNetwork.serverPort }}
  31. webUIPort: {{ .Values.tdarrNetwork.webPort }}
  32. nodeName: {{ .Values.tdarrConfig.nodeName }}
  33. serverIP: {{ .Values.tdarrConfig.serverIP }}
  34. fixedEnv:
  35. PUID: {{ .Values.tdarrID.user }}
  36. {{ with .Values.tdarrConfig.additionalEnvs }}
  37. envList:
  38. {{ range $env := . }}
  39. - name: {{ $env.name }}
  40. value: {{ $env.value }}
  41. {{ end }}
  42. {{ end }}
  43. probes:
  44. liveness:
  45. enabled: true
  46. type: http
  47. port: "{{ .Values.tdarrNetwork.webPort }}"
  48. path: /api/v2/status
  49. readiness:
  50. enabled: true
  51. type: http
  52. port: "{{ .Values.tdarrNetwork.webPort }}"
  53. path: /api/v2/status
  54. startup:
  55. enabled: true
  56. type: http
  57. port: "{{ .Values.tdarrNetwork.webPort }}"
  58. path: /api/v2/status
  59. {{/* Service */}}
  60. service:
  61. tdarr:
  62. enabled: true
  63. primary: true
  64. type: NodePort
  65. targetSelector: tdarr
  66. ports:
  67. webui:
  68. enabled: true
  69. primary: true
  70. port: {{ .Values.tdarrNetwork.webPort }}
  71. nodePort: {{ .Values.tdarrNetwork.webPort }}
  72. targetSelector: tdarr
  73. server:
  74. enabled: true
  75. port: {{ .Values.tdarrNetwork.serverPort }}
  76. nodePort: {{ .Values.tdarrNetwork.serverPort }}
  77. targetSelector: tdarr
  78. {{/* Persistence */}}
  79. persistence:
  80. server:
  81. enabled: true
  82. {{- include "tdarr.storage.ci.migration" (dict "storage" .Values.tdarrStorage.server) }}
  83. {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.tdarrStorage.server) | nindent 4 }}
  84. targetSelector:
  85. tdarr:
  86. tdarr:
  87. mountPath: /app/server
  88. configs:
  89. enabled: true
  90. {{- include "tdarr.storage.ci.migration" (dict "storage" .Values.tdarrStorage.configs) }}
  91. {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.tdarrStorage.configs) | nindent 4 }}
  92. targetSelector:
  93. tdarr:
  94. tdarr:
  95. mountPath: /app/configs
  96. logs:
  97. enabled: true
  98. {{- include "tdarr.storage.ci.migration" (dict "storage" .Values.tdarrStorage.logs) }}
  99. {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.tdarrStorage.logs) | nindent 4 }}
  100. targetSelector:
  101. tdarr:
  102. tdarr:
  103. mountPath: /app/logs
  104. transcode:
  105. enabled: true
  106. {{- include "tdarr.storage.ci.migration" (dict "storage" .Values.tdarrStorage.transcodes) }}
  107. {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.tdarrStorage.transcodes) | nindent 4 }}
  108. targetSelector:
  109. tdarr:
  110. tdarr:
  111. mountPath: /temp
  112. {{- range $idx, $storage := .Values.tdarrStorage.additionalStorages }}
  113. {{ printf "tdarr-%v" (int $idx) }}:
  114. enabled: true
  115. {{- include "tdarr.storage.ci.migration" (dict "storage" $storage) }}
  116. {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }}
  117. targetSelector:
  118. tdarr:
  119. tdarr:
  120. mountPath: {{ $storage.mountPath }}
  121. {{- end }}
  122. {{ with .Values.tdarrGPU }}
  123. scaleGPU:
  124. {{ range $key, $value := . }}
  125. - gpu:
  126. {{ $key }}: {{ $value }}
  127. targetSelector:
  128. tdarr:
  129. - tdarr
  130. {{ end }}
  131. {{ end }}
  132. {{- end -}}
  133. {{/* TODO: Remove on the next version bump, eg 1.2.0+ */}}
  134. {{- define "tdarr.storage.ci.migration" -}}
  135. {{- $storage := .storage -}}
  136. {{- if $storage.hostPath -}}
  137. {{- $_ := set $storage "hostPathConfig" dict -}}
  138. {{- $_ := set $storage.hostPathConfig "hostPath" $storage.hostPath -}}
  139. {{- end -}}
  140. {{- if eq $storage.type "emptyDir" -}}
  141. {{- if not $storage.emptyDirConfig -}}
  142. {{- $_ := set $storage "emptyDirConfig" (dict "medium" "" "size" "") -}}
  143. {{- end -}}
  144. {{- end -}}
  145. {{- end -}}