_qbittorrent.tpl 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. {{- define "qbittorrent.workload" -}}
  2. workload:
  3. qbittorrent:
  4. enabled: true
  5. primary: true
  6. type: Deployment
  7. podSpec:
  8. hostNetwork: {{ .Values.qbitNetwork.hostNetwork }}
  9. containers:
  10. qbittorrent:
  11. enabled: true
  12. primary: true
  13. imageSelector: image
  14. securityContext:
  15. runAsUser: {{ .Values.qbitRunAs.user }}
  16. runAsGroup: {{ .Values.qbitRunAs.group }}
  17. {{ with .Values.qbitConfig.additionalEnvs }}
  18. envList:
  19. {{ range $env := . }}
  20. - name: {{ $env.name }}
  21. value: {{ $env.value }}
  22. {{ end }}
  23. {{ end }}
  24. envFrom:
  25. - configMapRef:
  26. name: qbit-config
  27. probes:
  28. {{- if not (hasKey .Values.qbitNetwork "useHttpsProbe") -}}
  29. {{- $_ := set .Values.qbitNetwork "useHttpsProbe" false -}}
  30. {{- end }}
  31. liveness:
  32. enabled: true
  33. type: {{ ternary "https" "http" .Values.qbitNetwork.useHttpsProbe }}
  34. port: "{{ .Values.qbitNetwork.webPort }}"
  35. path: /
  36. readiness:
  37. enabled: true
  38. type: {{ ternary "https" "http" .Values.qbitNetwork.useHttpsProbe }}
  39. port: "{{ .Values.qbitNetwork.webPort }}"
  40. path: /
  41. startup:
  42. enabled: true
  43. type: {{ ternary "https" "http" .Values.qbitNetwork.useHttpsProbe }}
  44. port: "{{ .Values.qbitNetwork.webPort }}"
  45. path: /
  46. initContainers:
  47. {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions"
  48. "UID" .Values.qbitRunAs.user
  49. "GID" .Values.qbitRunAs.group
  50. "mode" "check"
  51. "type" "install") | nindent 8 }}
  52. {{/* Service */}}
  53. service:
  54. qbittorrent:
  55. enabled: true
  56. primary: true
  57. type: NodePort
  58. targetSelector: qbittorrent
  59. ports:
  60. webui:
  61. enabled: true
  62. primary: true
  63. port: {{ .Values.qbitNetwork.webPort }}
  64. nodePort: {{ .Values.qbitNetwork.webPort }}
  65. targetSelector: qbittorrent
  66. qbittorrent-bt:
  67. enabled: true
  68. type: NodePort
  69. targetSelector: qbittorrent
  70. ports:
  71. bt-tcp:
  72. enabled: true
  73. primary: true
  74. port: {{ .Values.qbitNetwork.btPort }}
  75. nodePort: {{ .Values.qbitNetwork.btPort }}
  76. targetSelector: qbittorrent
  77. bt-upd:
  78. enabled: true
  79. primary: true
  80. port: {{ .Values.qbitNetwork.btPort }}
  81. nodePort: {{ .Values.qbitNetwork.btPort }}
  82. protocol: udp
  83. targetSelector: qbittorrent
  84. {{/* Persistence */}}
  85. persistence:
  86. config:
  87. enabled: true
  88. {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.qbitStorage.config) | nindent 4 }}
  89. targetSelector:
  90. qbittorrent:
  91. qbittorrent:
  92. mountPath: /config
  93. {{- if and (eq .Values.qbitStorage.config.type "ixVolume")
  94. (not (.Values.qbitStorage.config.ixVolumeConfig | default dict).aclEnable) }}
  95. 01-permissions:
  96. mountPath: /mnt/directories/config
  97. {{- end }}
  98. downloads:
  99. enabled: true
  100. {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.qbitStorage.downloads) | nindent 4 }}
  101. targetSelector:
  102. qbittorrent:
  103. qbittorrent:
  104. mountPath: /downloads
  105. {{- if and (eq .Values.qbitStorage.downloads.type "ixVolume")
  106. (not (.Values.qbitStorage.downloads.ixVolumeConfig | default dict).aclEnable) }}
  107. 01-permissions:
  108. mountPath: /mnt/directories/downloads
  109. {{- end }}
  110. {{- range $idx, $storage := .Values.qbitStorage.additionalStorages }}
  111. {{ printf "qbittorrent-%v:" (int $idx) }}
  112. enabled: true
  113. {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }}
  114. targetSelector:
  115. qbittorrent:
  116. qbittorrent:
  117. mountPath: {{ $storage.mountPath }}
  118. {{- if and (eq $storage.type "ixVolume") (not ($storage.ixVolumeConfig | default dict).aclEnable) }}
  119. 01-permissions:
  120. mountPath: /mnt/directories{{ $storage.mountPath }}
  121. {{- end }}
  122. {{- end }}
  123. {{- end -}}