From 6c5afb5550c91384f560f61b501085bfbd7e0b11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=97=AA=D1=94=CE=BD=CE=B9=CE=B7=20=E1=97=B7=CF=85=D0=BD?= =?UTF-8?q?=CA=9F?= Date: Thu, 22 Apr 2021 12:36:00 -0400 Subject: [PATCH] [transmission] use string config and showoff initContainer (#813) --- charts/stable/transmission/Chart.yaml | 2 +- charts/stable/transmission/README.md | 98 ++------- .../transmission/README_CHANGELOG.md.gotmpl | 11 + charts/stable/transmission/ci/ct-values.yaml | 18 ++ .../transmission/templates/configmap.yaml | 2 +- charts/stable/transmission/values.yaml | 200 ++++++++++-------- 6 files changed, 151 insertions(+), 180 deletions(-) create mode 100644 charts/stable/transmission/ci/ct-values.yaml diff --git a/charts/stable/transmission/Chart.yaml b/charts/stable/transmission/Chart.yaml index 693b3c28..40c8aafc 100644 --- a/charts/stable/transmission/Chart.yaml +++ b/charts/stable/transmission/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: v3.00 description: Transmission is a cross-platform BitTorrent client name: transmission -version: 4.0.0 +version: 5.0.0 kubeVersion: ">=1.16.0-0" keywords: - transmission diff --git a/charts/stable/transmission/README.md b/charts/stable/transmission/README.md index 425d6403..6fb6826f 100644 --- a/charts/stable/transmission/README.md +++ b/charts/stable/transmission/README.md @@ -1,6 +1,6 @@ # transmission -![Version: 4.0.0](https://img.shields.io/badge/Version-4.0.0-informational?style=flat-square) ![AppVersion: v3.00](https://img.shields.io/badge/AppVersion-v3.00-informational?style=flat-square) +![Version: 5.0.0](https://img.shields.io/badge/Version-5.0.0-informational?style=flat-square) ![AppVersion: v3.00](https://img.shields.io/badge/AppVersion-v3.00-informational?style=flat-square) Transmission is a cross-platform BitTorrent client @@ -76,6 +76,7 @@ N/A | Key | Type | Default | Description | |-----|------|---------|-------------| +| config | string | string | Transmission's settings.json configuration | | env | object | `{}` | | | image.pullPolicy | string | `"IfNotPresent"` | | | image.repository | string | `"ghcr.io/k8s-at-home/transmission"` | | @@ -92,93 +93,9 @@ N/A | persistence.watch.mountPath | string | `"/watch"` | | | probes.liveness.spec.timeoutSeconds | int | `30` | | | probes.readiness.spec.timeoutSeconds | int | `30` | | -| service.additionalServices[0].annotations | object | `{}` | | -| service.additionalServices[0].enabled | bool | `true` | | -| service.additionalServices[0].nameSuffix | string | `"utptcp"` | | -| service.additionalServices[0].port.name | string | `"utptcp"` | | -| service.additionalServices[0].port.port | int | `51413` | | -| service.additionalServices[0].port.protocol | string | `"TCP"` | | -| service.additionalServices[0].port.targetport | int | `51413` | | -| service.additionalServices[0].type | string | `"ClusterIP"` | | -| service.additionalServices[1].annotations | object | `{}` | | -| service.additionalServices[1].enabled | bool | `true` | | -| service.additionalServices[1].nameSuffix | string | `"utpudp"` | | -| service.additionalServices[1].port.name | string | `"utpudp"` | | -| service.additionalServices[1].port.port | int | `51413` | | -| service.additionalServices[1].port.protocol | string | `"UDP"` | | -| service.additionalServices[1].port.targetport | int | `51413` | | -| service.additionalServices[1].type | string | `"ClusterIP"` | | | service.port.name | string | `"http"` | | | service.port.port | int | `9091` | | | strategy.type | string | `"Recreate"` | | -| transmissionConfig.alt-speed-down | int | `50` | | -| transmissionConfig.alt-speed-enabled | bool | `false` | | -| transmissionConfig.alt-speed-time-begin | int | `540` | | -| transmissionConfig.alt-speed-time-day | int | `127` | | -| transmissionConfig.alt-speed-time-enabled | bool | `false` | | -| transmissionConfig.alt-speed-time-end | int | `1020` | | -| transmissionConfig.alt-speed-up | int | `50` | | -| transmissionConfig.bind-address-ipv4 | string | `"0.0.0.0"` | | -| transmissionConfig.bind-address-ipv6 | string | `"::\""` | | -| transmissionConfig.blocklist-enabled | bool | `true` | | -| transmissionConfig.blocklist-url | string | `"http://john.bitsurge.net/public/biglist.p2p.gz"` | | -| transmissionConfig.cache-size-mb | int | `4` | | -| transmissionConfig.dht-enabled | bool | `true` | | -| transmissionConfig.download-dir | string | `"/downloads/complete"` | | -| transmissionConfig.download-queue-enabled | bool | `true` | | -| transmissionConfig.download-queue-size | int | `5` | | -| transmissionConfig.encryption | int | `1` | | -| transmissionConfig.idle-seeding-limit | int | `30` | | -| transmissionConfig.idle-seeding-limit-enabled | bool | `false` | | -| transmissionConfig.incomplete-dir | string | `"/downloads/incomplete"` | | -| transmissionConfig.incomplete-dir-enabled | bool | `true` | | -| transmissionConfig.lpd-enabled | bool | `false` | | -| transmissionConfig.message-level | int | `2` | | -| transmissionConfig.peer-congestion-algorithm | string | `""` | | -| transmissionConfig.peer-id-ttl-hours | int | `6` | | -| transmissionConfig.peer-limit-global | int | `200` | | -| transmissionConfig.peer-limit-per-torrent | int | `50` | | -| transmissionConfig.peer-port | int | `51413` | | -| transmissionConfig.peer-port-random-high | int | `65535` | | -| transmissionConfig.peer-port-random-low | int | `49152` | | -| transmissionConfig.peer-port-random-on-start | bool | `false` | | -| transmissionConfig.peer-socket-tos | string | `"default"` | | -| transmissionConfig.pex-enabled | bool | `true` | | -| transmissionConfig.port-forwarding-enabled | bool | `false` | | -| transmissionConfig.preallocation | int | `1` | | -| transmissionConfig.prefetch-enabled | bool | `true` | | -| transmissionConfig.queue-stalled-enabled | bool | `true` | | -| transmissionConfig.queue-stalled-minutes | int | `30` | | -| transmissionConfig.ratio-limit | int | `2` | | -| transmissionConfig.ratio-limit-enabled | bool | `false` | | -| transmissionConfig.rename-partial-files | bool | `true` | | -| transmissionConfig.rpc-authentication-required | bool | `false` | | -| transmissionConfig.rpc-bind-address | string | `"0.0.0.0"` | | -| transmissionConfig.rpc-enabled | bool | `true` | | -| transmissionConfig.rpc-host-whitelist | string | `""` | | -| transmissionConfig.rpc-host-whitelist-enabled | bool | `false` | | -| transmissionConfig.rpc-password | string | `"CHANGEME"` | | -| transmissionConfig.rpc-port | int | `9091` | | -| transmissionConfig.rpc-url | string | `"/transmission/"` | | -| transmissionConfig.rpc-username | string | `""` | | -| transmissionConfig.rpc-whitelist | string | `""` | | -| transmissionConfig.rpc-whitelist-enabled | bool | `false` | | -| transmissionConfig.scrape-paused-torrents-enabled | bool | `true` | | -| transmissionConfig.script-torrent-done-enabled | bool | `false` | | -| transmissionConfig.script-torrent-done-filename | string | `""` | | -| transmissionConfig.seed-queue-enabled | bool | `false` | | -| transmissionConfig.seed-queue-size | int | `10` | | -| transmissionConfig.speed-limit-down | int | `100` | | -| transmissionConfig.speed-limit-down-enabled | bool | `false` | | -| transmissionConfig.speed-limit-up | int | `100` | | -| transmissionConfig.speed-limit-up-enabled | bool | `false` | | -| transmissionConfig.start-added-torrents | bool | `true` | | -| transmissionConfig.trash-original-torrent-files | bool | `false` | | -| transmissionConfig.umask | int | `2` | | -| transmissionConfig.upload-slots-per-torrent | int | `14` | | -| transmissionConfig.utp-enabled | bool | `true` | | -| transmissionConfig.watch-dir | string | `"/watch"` | | -| transmissionConfig.watch-dir-enabled | bool | `false` | | ## Changelog @@ -186,6 +103,16 @@ All notable changes to this application Helm chart will be documented in this fi The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +### [5.0.0] + +#### Added + +- Example initContainer to showcase adding a custom web ui + +#### Changed + +- **Breaking**: `transmissionConfig` became `config` and is now a string not a object + ### [4.0.0] #### Changed @@ -204,6 +131,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Initial commit +[5.0.0]: #5.0.0 [4.0.0]: #4.0.0 [1.0.0]: #1.0.0 diff --git a/charts/stable/transmission/README_CHANGELOG.md.gotmpl b/charts/stable/transmission/README_CHANGELOG.md.gotmpl index 4f83cc8a..5420cea4 100644 --- a/charts/stable/transmission/README_CHANGELOG.md.gotmpl +++ b/charts/stable/transmission/README_CHANGELOG.md.gotmpl @@ -9,6 +9,16 @@ All notable changes to this application Helm chart will be documented in this fi The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +### [5.0.0] + +#### Added + +- Example initContainer to showcase adding a custom web ui + +#### Changed + +- **Breaking**: `transmissionConfig` became `config` and is now a string not an object + ### [4.0.0] #### Changed @@ -27,6 +37,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Initial commit +[5.0.0]: #5.0.0 [4.0.0]: #4.0.0 [1.0.0]: #1.0.0 {{- end -}} diff --git a/charts/stable/transmission/ci/ct-values.yaml b/charts/stable/transmission/ci/ct-values.yaml new file mode 100644 index 00000000..9c562574 --- /dev/null +++ b/charts/stable/transmission/ci/ct-values.yaml @@ -0,0 +1,18 @@ +initContainers: +- name: custom-webui + image: curlimages/curl:7.76.1 + command: + - "/bin/sh" + - "-c" + - "curl -fsSL -o /tmp/flood-for-transmission.tar.gz https://github.com/johman10/flood-for-transmission/releases/download/latest/flood-for-transmission.tar.gz" + - "mkdir -p /config/flood" + - "tar xf /tmp/flood-for-transmission.tar.gz --strip-components 1 -C /config/flood" + volumeMounts: + - name: config + mountPath: /config + +persistence: + config: + enabled: true + emptyDir: + enabled: true diff --git a/charts/stable/transmission/templates/configmap.yaml b/charts/stable/transmission/templates/configmap.yaml index 55a1d266..62040f65 100644 --- a/charts/stable/transmission/templates/configmap.yaml +++ b/charts/stable/transmission/templates/configmap.yaml @@ -6,4 +6,4 @@ metadata: {{- include "common.labels" . | nindent 4 }} data: settings.json: | - {{- .Values.transmissionConfig | mustToPrettyJson | nindent 4 }} + {{- .Values.config | nindent 4 }} diff --git a/charts/stable/transmission/values.yaml b/charts/stable/transmission/values.yaml index 747e8cf5..48c0163f 100644 --- a/charts/stable/transmission/values.yaml +++ b/charts/stable/transmission/values.yaml @@ -5,6 +5,20 @@ # https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml # +# # Use an initContainer to download a custom web ui +# initContainers: +# - name: custom-webui +# image: curlimages/curl:7.76.1 +# command: +# - "/bin/sh" +# - "-c" +# - "curl -fsSL -o /tmp/flood-for-transmission.tar.gz https://github.com/johman10/flood-for-transmission/releases/download/latest/flood-for-transmission.tar.gz" +# - "mkdir -p /config/flood" +# - "tar xf /tmp/flood-for-transmission.tar.gz --strip-components 1 -C /config/flood" +# volumeMounts: +# - name: config +# mountPath: /config + image: repository: ghcr.io/k8s-at-home/transmission pullPolicy: IfNotPresent @@ -13,37 +27,33 @@ image: strategy: type: Recreate -# See more environment variables in the transmission documentation -# https://hub.docker.com/r/linuxserver/transmission env: {} - # PUID: 1000 - # PGID: 1000 # TZ: UTC + # TRANSMISSION_WEB_HOME: /config/flood service: port: port: 9091 name: http - - additionalServices: - - enabled: true - nameSuffix: utptcp - type: ClusterIP - annotations: {} - port: - port: 51413 - name: utptcp - protocol: TCP - targetport: 51413 - - enabled: true - nameSuffix: utpudp - type: ClusterIP - annotations: {} - port: - port: 51413 - name: utpudp - protocol: UDP - targetport: 51413 + # additionalServices: + # - enabled: true + # nameSuffix: utptcp + # type: ClusterIP + # annotations: {} + # port: + # port: 51413 + # name: utptcp + # protocol: TCP + # targetport: 51413 + # - enabled: true + # nameSuffix: utpudp + # type: ClusterIP + # annotations: {} + # port: + # port: 51413 + # name: utpudp + # protocol: UDP + # targetport: 51413 ## transmission runs the gui and io on the same thread - heavy bandwith usage ## may stall the UI and result in restarts. @@ -102,72 +112,76 @@ persistence: enabled: false mountPath: /watch -transmissionConfig: - alt-speed-down: 50 - alt-speed-enabled: false - alt-speed-time-begin: 540 - alt-speed-time-day: 127 - alt-speed-time-enabled: false - alt-speed-time-end: 1020 - alt-speed-up: 50 - bind-address-ipv4: "0.0.0.0" - bind-address-ipv6: ::" - blocklist-enabled: true - blocklist-url: "http://john.bitsurge.net/public/biglist.p2p.gz" - cache-size-mb: 4 - dht-enabled: true - download-dir: "/downloads/complete" - download-queue-enabled: true - download-queue-size: 5 - encryption: 1 - idle-seeding-limit: 30 - idle-seeding-limit-enabled: false - incomplete-dir: "/downloads/incomplete" - incomplete-dir-enabled: true - lpd-enabled: false - message-level: 2 - peer-congestion-algorithm: "" - peer-id-ttl-hours: 6 - peer-limit-global: 200 - peer-limit-per-torrent: 50 - peer-port: 51413 - peer-port-random-high: 65535 - peer-port-random-low: 49152 - peer-port-random-on-start: false - peer-socket-tos: "default" - pex-enabled: true - port-forwarding-enabled: false - preallocation: 1 - prefetch-enabled: true - queue-stalled-enabled: true - queue-stalled-minutes: 30 - ratio-limit: 2 - ratio-limit-enabled: false - rename-partial-files: true - rpc-authentication-required: false - rpc-bind-address: "0.0.0.0" - rpc-enabled: true - rpc-host-whitelist: "" - rpc-host-whitelist-enabled: false - rpc-password: "CHANGEME" - rpc-port: 9091 - rpc-url: "/transmission/" - rpc-username: "" - rpc-whitelist: "" - rpc-whitelist-enabled: false - scrape-paused-torrents-enabled: true - script-torrent-done-enabled: false - script-torrent-done-filename: "" - seed-queue-enabled: false - seed-queue-size: 10 - speed-limit-down: 100 - speed-limit-down-enabled: false - speed-limit-up: 100 - speed-limit-up-enabled: false - start-added-torrents: true - trash-original-torrent-files: false - umask: 2 - upload-slots-per-torrent: 14 - utp-enabled: true - watch-dir: "/watch" - watch-dir-enabled: false +# -- Transmission's settings.json configuration +# @default -- string +config: | + { + "alt-speed-down": 50, + "alt-speed-enabled": false, + "alt-speed-time-begin": 540, + "alt-speed-time-day": 127, + "alt-speed-time-enabled": false, + "alt-speed-time-end": 1020, + "alt-speed-up": 50, + "bind-address-ipv4": "0.0.0.0", + "bind-address-ipv6": "::", + "blocklist-enabled": true, + "blocklist-url": "http://john.bitsurge.net/public/biglist.p2p.gz", + "cache-size-mb": 4, + "dht-enabled": true, + "download-dir": "/downloads/complete", + "download-queue-enabled": true, + "download-queue-size": 5, + "encryption": 1, + "idle-seeding-limit": 30, + "idle-seeding-limit-enabled": false, + "incomplete-dir": "/downloads/incomplete", + "incomplete-dir-enabled": true, + "lpd-enabled": false, + "message-level": 2, + "peer-congestion-algorithm": "", + "peer-id-ttl-hours": 6, + "peer-limit-global": 200, + "peer-limit-per-torrent": 50, + "peer-port": 51413, + "peer-port-random-high": 65535, + "peer-port-random-low": 49152, + "peer-port-random-on-start": false, + "peer-socket-tos": "default", + "pex-enabled": true, + "port-forwarding-enabled": false, + "preallocation": 1, + "prefetch-enabled": true, + "queue-stalled-enabled": true, + "queue-stalled-minutes": 30, + "ratio-limit": 2, + "ratio-limit-enabled": false, + "rename-partial-files": true, + "rpc-authentication-required": false, + "rpc-bind-address": "0.0.0.0", + "rpc-enabled": true, + "rpc-host-whitelist": "", + "rpc-host-whitelist-enabled": false, + "rpc-password": "CHANGEME", + "rpc-port": 9091, + "rpc-url": "/transmission/", + "rpc-username": "", + "rpc-whitelist": "", + "rpc-whitelist-enabled": false, + "scrape-paused-torrents-enabled": true, + "script-torrent-done-enabled": false, + "script-torrent-done-filename": "", + "seed-queue-enabled": false, + "seed-queue-size": 10, + "speed-limit-down": 100, + "speed-limit-down-enabled": false, + "speed-limit-up": 100, + "speed-limit-up-enabled": false, + "start-added-torrents": true, + "trash-original-torrent-files": false, + "umask": 2, + "upload-slots-per-torrent": 14, + "utp-enabled": true, + "watch-dir": "/watch", + "watch-dir-enabled": false + }