diff --git a/library/ix-dev/community/deluge/Chart.yaml b/library/ix-dev/community/deluge/Chart.yaml index 2f60ada5ea..f950f631ec 100644 --- a/library/ix-dev/community/deluge/Chart.yaml +++ b/library/ix-dev/community/deluge/Chart.yaml @@ -3,7 +3,7 @@ description: Deluge is a lightweight, Free Software, cross-platform BitTorrent c annotations: title: Deluge type: application -version: 1.0.7 +version: 1.0.8 apiVersion: v2 appVersion: '9.5.3' kubeVersion: '>=1.16.0-0' diff --git a/library/ix-dev/community/deluge/charts/common-1.1.0.tgz b/library/ix-dev/community/deluge/charts/common-1.1.0.tgz index ddddd9ec8c..96a0851688 100644 Binary files a/library/ix-dev/community/deluge/charts/common-1.1.0.tgz and b/library/ix-dev/community/deluge/charts/common-1.1.0.tgz differ diff --git a/library/ix-dev/community/deluge/questions.yaml b/library/ix-dev/community/deluge/questions.yaml index b4eed994d1..c37e785534 100644 --- a/library/ix-dev/community/deluge/questions.yaml +++ b/library/ix-dev/community/deluge/questions.yaml @@ -98,7 +98,9 @@ questions: default: false - variable: webPort label: Web Port - description: The port for the Deluge Web UI. + description: | + The port for the Deluge Web UI.
+ (The internal port is always 8112) schema: type: int show_if: [["hostNetwork", "=", false]] @@ -130,10 +132,8 @@ questions: description: | The port for the Deluge Torrent.
Applies to both TCP and UDP. - (Internal port is always 6881) schema: type: int - show_if: [["hostNetwork", "=", false]] default: 30039 min: 9000 max: 65535 diff --git a/library/ix-dev/community/deluge/templates/_deluge.tpl b/library/ix-dev/community/deluge/templates/_deluge.tpl index 1cda1063d3..3484d75502 100644 --- a/library/ix-dev/community/deluge/templates/_deluge.tpl +++ b/library/ix-dev/community/deluge/templates/_deluge.tpl @@ -48,79 +48,39 @@ workload: type: http port: 8112 path: / - -{{/* Service */}} -service: - deluge: - enabled: true - primary: true - type: NodePort - targetSelector: deluge - ports: - webui: - enabled: true - primary: true - port: {{ .Values.delugeNetwork.webPort }} - nodePort: {{ .Values.delugeNetwork.webPort }} - targetPort: 8112 - targetSelector: deluge - {{- if .Values.delugeNetwork.exposeDaemon }} - daemon: - enabled: true - port: {{ .Values.delugeNetwork.daemonPort }} - nodePort: {{ .Values.delugeNetwork.daemonPort }} - targetPort: 58846 - targetSelector: deluge - {{- end }} - torrent: - enabled: true - type: NodePort - targetSelector: deluge - ports: - tcp: - enabled: true - primary: true - port: {{ .Values.delugeNetwork.torrentPort }} - nodePort: {{ .Values.delugeNetwork.torrentPort }} - targetPort: 6881 - targetSelector: deluge - udp: - enabled: true - port: {{ .Values.delugeNetwork.torrentPort }} - nodePort: {{ .Values.delugeNetwork.torrentPort }} - targetPort: 6881 - protocol: udp - targetSelector: deluge - -{{/* Persistence */}} -persistence: - config: - enabled: true - type: {{ .Values.delugeStorage.config.type }} - datasetName: {{ .Values.delugeStorage.config.datasetName | default "" }} - hostPath: {{ .Values.delugeStorage.config.hostPath | default "" }} - targetSelector: - deluge: - deluge: - mountPath: /config - downloads: - enabled: true - type: {{ .Values.delugeStorage.downloads.type }} - datasetName: {{ .Values.delugeStorage.downloads.datasetName | default "" }} - hostPath: {{ .Values.delugeStorage.downloads.hostPath | default "" }} - targetSelector: - deluge: - deluge: - mountPath: /downloads - {{- range $idx, $storage := .Values.delugeStorage.additionalStorages }} - {{ printf "deluge-%v" (int $idx) }}: - enabled: true - type: {{ $storage.type }} - datasetName: {{ $storage.datasetName | default "" }} - hostPath: {{ $storage.hostPath | default "" }} - targetSelector: - deluge: - deluge: - mountPath: {{ $storage.mountPath }} - {{- end }} + initContainers: + config: + enabled: true + type: init + imageSelector: image + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + readOnlyRootFilesystem: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - SETGID + - SETUID + command: + - python + args: + - -c + - | + from deluge.config import Config + import os + import shutil + if not os.path.exists('/config/core.conf'): + print('Copying default config') + shutil.copyfile('/defaults/core.conf', '/config/core.conf') + print('Loading config') + config = Config('/config/core.conf') + print('Setting listen ports to {{ .Values.delugeNetwork.torrentPort }}') + config['listen_ports'] = [{{ .Values.delugeNetwork.torrentPort }}, {{ .Values.delugeNetwork.torrentPort }}] + print('Saving config') + Config.save(config) + print('Done') {{- end -}} diff --git a/library/ix-dev/community/deluge/templates/_persistence.tpl b/library/ix-dev/community/deluge/templates/_persistence.tpl new file mode 100644 index 0000000000..73fc82c97b --- /dev/null +++ b/library/ix-dev/community/deluge/templates/_persistence.tpl @@ -0,0 +1,34 @@ +{{- define "deluge.persistence" -}} +persistence: + config: + enabled: true + type: {{ .Values.delugeStorage.config.type }} + datasetName: {{ .Values.delugeStorage.config.datasetName | default "" }} + hostPath: {{ .Values.delugeStorage.config.hostPath | default "" }} + targetSelector: + deluge: + deluge: + mountPath: /config + config: + mountPath: /config + downloads: + enabled: true + type: {{ .Values.delugeStorage.downloads.type }} + datasetName: {{ .Values.delugeStorage.downloads.datasetName | default "" }} + hostPath: {{ .Values.delugeStorage.downloads.hostPath | default "" }} + targetSelector: + deluge: + deluge: + mountPath: /downloads + {{- range $idx, $storage := .Values.delugeStorage.additionalStorages }} + {{ printf "deluge-%v" (int $idx) }}: + enabled: true + type: {{ $storage.type }} + datasetName: {{ $storage.datasetName | default "" }} + hostPath: {{ $storage.hostPath | default "" }} + targetSelector: + deluge: + deluge: + mountPath: {{ $storage.mountPath }} + {{- end }} +{{- end -}} diff --git a/library/ix-dev/community/deluge/templates/_service.tpl b/library/ix-dev/community/deluge/templates/_service.tpl new file mode 100644 index 0000000000..106383ea1b --- /dev/null +++ b/library/ix-dev/community/deluge/templates/_service.tpl @@ -0,0 +1,41 @@ +{{- define "deluge.service" -}} +service: + deluge: + enabled: true + primary: true + type: NodePort + targetSelector: deluge + ports: + webui: + enabled: true + primary: true + port: {{ .Values.delugeNetwork.webPort }} + nodePort: {{ .Values.delugeNetwork.webPort }} + targetPort: 8112 + targetSelector: deluge + {{- if .Values.delugeNetwork.exposeDaemon }} + daemon: + enabled: true + port: {{ .Values.delugeNetwork.daemonPort }} + nodePort: {{ .Values.delugeNetwork.daemonPort }} + targetPort: 58846 + targetSelector: deluge + {{- end }} + torrent: + enabled: true + type: NodePort + targetSelector: deluge + ports: + tcp: + enabled: true + primary: true + port: {{ .Values.delugeNetwork.torrentPort }} + nodePort: {{ .Values.delugeNetwork.torrentPort }} + targetSelector: deluge + udp: + enabled: true + port: {{ .Values.delugeNetwork.torrentPort }} + nodePort: {{ .Values.delugeNetwork.torrentPort }} + protocol: udp + targetSelector: deluge +{{- end -}} diff --git a/library/ix-dev/community/deluge/templates/common.yaml b/library/ix-dev/community/deluge/templates/common.yaml index 0596641f18..c1a4700237 100644 --- a/library/ix-dev/community/deluge/templates/common.yaml +++ b/library/ix-dev/community/deluge/templates/common.yaml @@ -1,6 +1,8 @@ {{- include "ix.v1.common.loader.init" . -}} {{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "deluge.service" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "deluge.persistence" $ | fromYaml) -}} {{- $_ := mustMergeOverwrite .Values (include "deluge.workload" $ | fromYaml) -}} {{/* Create the configmap for portal manually*/}}