Переглянути джерело

NAS-123719 / 24.04 / Fix deluge torrent port (#1477)

* split into files

* adjust torrent port

* always show the torrent port now

* update tooltips

* bump
Stavros Kois 2 роки тому
батько
коміт
5a21ebb8fb

+ 1 - 1
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'

BIN
library/ix-dev/community/deluge/charts/common-1.1.0.tgz


+ 3 - 3
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.</br>
+            (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.</br>
             Applies to both TCP and UDP.
-            (Internal port is always 6881)
           schema:
             type: int
-            show_if: [["hostNetwork", "=", false]]
             default: 30039
             min: 9000
             max: 65535

+ 35 - 75
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 -}}

+ 34 - 0
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 -}}

+ 41 - 0
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 -}}

+ 2 - 0
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*/}}