From d9f263e2ee6bdfef46f966558b92ad4e6db110d2 Mon Sep 17 00:00:00 2001 From: Piotr Maksymiuk <50323052+ishioni@users.noreply.github.com> Date: Sun, 21 Feb 2021 23:25:37 +0100 Subject: [PATCH] [transmission] add chart (#606) --- charts/transmission/.helmignore | 26 +++ charts/transmission/Chart.yaml | 21 ++ charts/transmission/OWNERS | 8 + charts/transmission/README.md | 117 +++++++++++ charts/transmission/README.md.gotmpl | 145 ++++++++++++++ .../transmission/README_CHANGELOG.md.gotmpl | 27 +++ charts/transmission/README_CONFIG.md.gotmpl | 9 + charts/transmission/templates/NOTES.txt | 1 + charts/transmission/templates/common.yaml | 1 + charts/transmission/templates/configmap.yaml | 11 ++ charts/transmission/values.yaml | 184 ++++++++++++++++++ 11 files changed, 550 insertions(+) create mode 100644 charts/transmission/.helmignore create mode 100644 charts/transmission/Chart.yaml create mode 100644 charts/transmission/OWNERS create mode 100644 charts/transmission/README.md create mode 100644 charts/transmission/README.md.gotmpl create mode 100644 charts/transmission/README_CHANGELOG.md.gotmpl create mode 100644 charts/transmission/README_CONFIG.md.gotmpl create mode 100644 charts/transmission/templates/NOTES.txt create mode 100644 charts/transmission/templates/common.yaml create mode 100644 charts/transmission/templates/configmap.yaml create mode 100644 charts/transmission/values.yaml diff --git a/charts/transmission/.helmignore b/charts/transmission/.helmignore new file mode 100644 index 00000000..4379e2b3 --- /dev/null +++ b/charts/transmission/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/transmission/Chart.yaml b/charts/transmission/Chart.yaml new file mode 100644 index 00000000..0bb68a42 --- /dev/null +++ b/charts/transmission/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: 3.0.0 +description: Transmission is a cross-platform BitTorrent client +name: transmission +version: 1.0.0 +kubeVersion: ">=1.16.0-0" +keywords: +- transmission +- torrent +home: https://github.com/k8s-at-home/charts/tree/master/charts/transmission +icon: https://github.com/transmission/transmission/raw/master/extras/transmission-1920.jpg +sources: +- https://hub.docker.com/r/linuxserver/transmission +- https://github.com/k8s-at-home/charts/tree/master/charts/transmission +maintainers: +- name: ishioni + email: helm@movishell.pl +dependencies: +- name: common + repository: https://k8s-at-home.com/charts/ + version: 3.0.1 diff --git a/charts/transmission/OWNERS b/charts/transmission/OWNERS new file mode 100644 index 00000000..1ce35762 --- /dev/null +++ b/charts/transmission/OWNERS @@ -0,0 +1,8 @@ +approvers: +- billimek +- onedr0p +- bjw-s +reviewers: +- billimek +- onedr0p +- bjw-s diff --git a/charts/transmission/README.md b/charts/transmission/README.md new file mode 100644 index 00000000..23a8a19c --- /dev/null +++ b/charts/transmission/README.md @@ -0,0 +1,117 @@ +# transmission + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) + +transmission helm package + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://k8s-at-home.com/charts/ | common | 3.0.1 | + +## TL;DR + +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm repo update +helm install transmission k8s-at-home/transmission +``` + +## Installing the Chart + +To install the chart with the release name `transmission` + +```console +helm install transmission k8s-at-home/transmission +``` + +## Uninstalling the Chart + +To uninstall the `transmission` deployment + +```console +helm uninstall transmission +``` + +The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release. + +## Configuration + +Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. +Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common). + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install transmission \ + --set env.TZ="America/New York" \ + k8s-at-home/transmission +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install transmission k8s-at-home/transmission -f values.yaml +``` + +## Custom configuration + +N/A + +## Values + +**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/) + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | `{}` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"transmission/transmission"` | | +| image.tag | string | `"1.0.0"` | | +| ingress.enabled | bool | `false` | | +| service.port.port | int | `1880` | | +| strategy.type | string | `"Recreate"` | | + +## Changelog + +All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog). + +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). + +### [1.0.0] + +#### Added + +- N/A + +#### Changed + +- N/A + +#### Removed + +- N/A + +[1.0.0]: #1.0.0 + +## Support + +- See the [Wiki](https://github.com/k8s-at-home/charts/wiki) +- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/charts/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) diff --git a/charts/transmission/README.md.gotmpl b/charts/transmission/README.md.gotmpl new file mode 100644 index 00000000..387904a6 --- /dev/null +++ b/charts/transmission/README.md.gotmpl @@ -0,0 +1,145 @@ +{{- define "custom.repository.organization" -}} +k8s-at-home +{{- end -}} + +{{- define "custom.repository.url" -}} +https://github.com/k8s-at-home/charts +{{- end -}} + +{{- define "custom.helm.url" -}} +https://k8s-at-home.com/charts/ +{{- end -}} + +{{- define "custom.helm.path" -}} +{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }} +{{- end -}} + +{{- define "custom.notes" -}} +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** +{{- end -}} + +{{- define "custom.requirements" -}} +## Requirements + +{{ template "chart.kubeVersionLine" . }} +{{- end -}} + +{{- define "custom.dependencies" -}} +## Dependencies + +{{ template "chart.requirementsTable" . }} +{{- end -}} + +{{- define "custom.install.tldr" -}} +## TL;DR + +```console +helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }} +helm repo update +helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} +``` +{{- end -}} + +{{- define "custom.install" -}} +## Installing the Chart + +To install the chart with the release name `{{ template "chart.name" . }}` + +```console +helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} +``` +{{- end -}} + +{{- define "custom.uninstall" -}} +## Uninstalling the Chart + +To uninstall the `{{ template "chart.name" . }}` deployment + +```console +helm uninstall {{ template "chart.name" . }} +``` + +The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release. +{{- end -}} + +{{- define "custom.configuration.header" -}} +## Configuration +{{- end -}} + +{{- define "custom.configuration.readValues" -}} +Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. +Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common). +{{- end -}} + +{{- define "custom.configuration.example.set" -}} +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install {{ template "chart.name" . }} \ + --set env.TZ="America/New York" \ + {{ template "custom.helm.path" . }} +``` +{{- end -}} + +{{- define "custom.configuration.example.file" -}} +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml +``` +{{- end -}} + +{{- define "custom.valuesSection" -}} +## Values + +**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/) + +{{ template "chart.valuesTable" . }} +{{- end -}} + +{{- define "custom.support" -}} +## Support + +- See the [Wiki](https://github.com/k8s-at-home/charts/wiki) +- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/charts/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community +{{- end -}} + +{{ template "chart.header" . }} + +{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }} + +{{ template "chart.description" . }} + +{{ template "custom.notes" . }} + +{{ template "chart.sourcesSection" . }} + +{{ template "custom.requirements" . }} + +{{ template "custom.dependencies" . }} + +{{ template "custom.install.tldr" . }} + +{{ template "custom.install" . }} + +{{ template "custom.uninstall" . }} + +{{ template "custom.configuration.header" . }} + +{{ template "custom.configuration.readValues" . }} + +{{ template "custom.configuration.example.set" . }} + +{{ template "custom.configuration.example.file" . }} + +{{ template "custom.custom.configuration" . }} + +{{ template "custom.valuesSection" . }} + +{{ template "custom.changelog" . }} + +{{ template "custom.support" . }} + +{{ template "helm-docs.versionFooter" . }} diff --git a/charts/transmission/README_CHANGELOG.md.gotmpl b/charts/transmission/README_CHANGELOG.md.gotmpl new file mode 100644 index 00000000..e6167dad --- /dev/null +++ b/charts/transmission/README_CHANGELOG.md.gotmpl @@ -0,0 +1,27 @@ +{{- define "custom.changelog.header" -}} +## Changelog +{{- end -}} + +{{- define "custom.changelog" -}} +{{ template "custom.changelog.header" . }} + +All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog). + +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). + +### [1.0.0] + +#### Added + +- N/A + +#### Changed + +- N/A + +#### Removed + +- N/A + +[1.0.0]: #1.0.0 +{{- end -}} diff --git a/charts/transmission/README_CONFIG.md.gotmpl b/charts/transmission/README_CONFIG.md.gotmpl new file mode 100644 index 00000000..e93d80bf --- /dev/null +++ b/charts/transmission/README_CONFIG.md.gotmpl @@ -0,0 +1,9 @@ +{{- define "custom.custom.configuration.header" -}} +## Custom configuration +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +N/A +{{- end -}} diff --git a/charts/transmission/templates/NOTES.txt b/charts/transmission/templates/NOTES.txt new file mode 100644 index 00000000..90f7b653 --- /dev/null +++ b/charts/transmission/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "common.notes.defaultNotes" . -}} diff --git a/charts/transmission/templates/common.yaml b/charts/transmission/templates/common.yaml new file mode 100644 index 00000000..a6613c2c --- /dev/null +++ b/charts/transmission/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/transmission/templates/configmap.yaml b/charts/transmission/templates/configmap.yaml new file mode 100644 index 00000000..5a6d5134 --- /dev/null +++ b/charts/transmission/templates/configmap.yaml @@ -0,0 +1,11 @@ +{{- if .Values.customConfig.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-config + labels: + {{- include "common.labels" . | nindent 4 }} +data: + settings.json: | + {{- .Values.customconfig.config | mustToPrettyJson | nindent 4 }} +{{- end }} diff --git a/charts/transmission/values.yaml b/charts/transmission/values.yaml new file mode 100644 index 00000000..7950be6c --- /dev/null +++ b/charts/transmission/values.yaml @@ -0,0 +1,184 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/charts/tree/master/charts/common/values.yaml +# + +image: + repository: linuxserver/transmission + pullPolicy: IfNotPresent + tag: version-3.00-r2 + +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 + +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 + +## transmission runs the gui and io on the same thread - heavy bandwith usage +## may stall the UI and result in restarts. +probes: + liveness: + spec: + timeoutSeconds: 30 + readiness: + spec: + timeoutSeconds: 30 + + +ingress: + enabled: false + # annotations: {} + # hosts: + # - host: example.com + # paths: + # - path: / + # pathType: Prefix + # tls: + # - secretName: example.com + # hosts: + # - example.com + +persistence: + ## Directory for storing active torrent files, resume list, + ## blocklists and DHT peers + config: + enabled: false + emptyDir: false + mountPath: /config + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 100Mi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" + + downloads: + enabled: false + emptyDir: false + mountPath: /downloads + + watch: + enabled: false + emptyDir: false + mountPath: /watch + +## Enable this if you want to specify your own config within the chart +# additionalVolumes: +# - name: transmission-config +# configMap: +# # Replace RELEASE-NAME with your actual name +# name: RELEASE-NAME-transmission-config +# +# additionalVolumeMounts: +# - mountPath: /config/settings.json +# name: transmission-config +# subPath: settings.json + +customConfig: + enabled: false + 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