thomflix requirements and transmission

This commit is contained in:
2024-11-05 22:57:03 +00:00
parent a8a74d42ef
commit ee0a59ecf9
22 changed files with 812 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "thomflix-argocd-apps.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "thomflix-argocd-apps.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "thomflix-argocd-apps.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "thomflix-argocd-apps.labels" -}}
helm.sh/chart: {{ include "thomflix-argocd-apps.chart" . }}
{{ include "thomflix-argocd-apps.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "thomflix-argocd-apps.selectorLabels" -}}
app.kubernetes.io/name: {{ include "thomflix-argocd-apps.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "thomflix-argocd-apps.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "thomflix-argocd-apps.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,30 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: thomflix-requirements
namespace: {{ .Values.argocd.namespace }}
annotations:
argocd.argoproj.io/sync-wave: "-1"
spec:
project: {{ .Values.argocd.project }}
source:
repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD
path: thomflix-requirements
helm:
releaseName: thomflix-requirements
valuesObject:
mediaLibrary:
storageClassName: {{ .Values.mediaLibrary.storageClassName }}
storageSize: {{ .Values.mediaLibrary.storageSize }}
destination:
server: {{ .Values.mainDestination }}
namespace: {{ .Values.mainNamespace }}
syncPolicy:
automated:
prune: true # Automatically remove resources no longer in the repo
selfHeal: true # Automatically self-heal when drift is detected
syncOptions:
- ApplyOutOfSyncOnly=true
- ServerSideApply=true
- CreateNamespace=true

View File

@@ -0,0 +1,136 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: transmission
namespace: {{ .Values.argocd.namespace }}
annotations:
argocd.argoproj.io/sync-wave: "0"
spec:
project: {{ .Values.argocd.project }}
source:
repoURL: "tccr.io/truecharts"
chart: transmission
targetRevision: 22.x
helm:
releaseName: transmission
valuesObject:
persistence:
config:
enabled: true
mountPath: "/config"
type: pvc
namespace: {{ .Values.mainNamespace }}
accessModes: ReadWriteOnce
size: 100Mi
storageClass: longhorn-config
downloads:
enabled: true
mountPath: "/data/torrents"
type: pvc
namespace: {{ .Values.mainNamespace }}
existingClaim: thomflix-media
subPath: "data/torrents"
workload:
main:
podSpec:
containers:
main:
probes:
liveness:
enabled: true
type: tcp
startup:
enabled: true
type: tcp
readiness:
enabled: true
type: tcp
env:
# PUID: 1001
# URL is set here so it wont be able to get overwritten by the user
# as this will break the probes, if the need arises we can expose it.
TRANSMISSION__RPC_URL: "/transmission"
# TRANSMISSION__RPC_USERNAME: ""
# TRANSMISSION__RPC_PASSWORD: ""
# TRANSMISSION__RPC_AUTHENTICATION_REQUIRED: false
# TRANSMISSION__ALT_SPEED_DOWN: 50
# TRANSMISSION__ALT_SPEED_ENABLED: false
# TRANSMISSION__ALT_SPEED_TIME_BEGIN: 540
# TRANSMISSION__ALT_SPEED_TIME_DAY: 127
# TRANSMISSION__ALT_SPEED_TIME_ENABLED: false
# TRANSMISSION__ALT_SPEED_TIME_END: 1020
# TRANSMISSION__ALT_SPEED_UP: 50
# TRANSMISSION__BIND_ADDRESS_IPV4: "0.0.0.0"
# TRANSMISSION__BIND_ADDRESS_IPV6: "::"
# TRANSMISSION__BLOCKLIST_ENABLED: true
# TRANSMISSION__BLOCKLIST_URL: "https://github.com/Naunter/BT_BlockLists/releases/download/v.1/bt_blocklists.gz"
# TRANSMISSION__CACHE_SIZE_MB: 4
# TRANSMISSION__DHT_ENABLED: true
TRANSMISSION__DOWNLOAD_DIR: "/data/torrents"
# TRANSMISSION__DOWNLOAD_QUEUE_ENABLED: true
# TRANSMISSION__DOWNLOAD_QUEUE_SIZE: 5
# TRANSMISSION__ENCRYPTION: 1
# TRANSMISSION__IDLE_SEEDING_LIMIT: 30
# TRANSMISSION__IDLE_SEEDING_LIMIT_ENABLED: false
TRANSMISSION__INCOMPLETE_DIR: "/data/torrents/incomplete"
# TRANSMISSION__INCOMPLETE_DIR_ENABLED: true
# TRANSMISSION__LPD_ENABLED: false
# TRANSMISSION__MESSAGE_LEVEL: 2
# TRANSMISSION__PEER_CONGESTION_ALGORITHM: ""
# TRANSMISSION__PEER_ID_TTL_HOURS: 6
# TRANSMISSION__PEER_LIMIT_GLOBAL: 200
# TRANSMISSION__PEER_LIMIT_PER_TORRENT: 50
# TRANSMISSION__PEER_PORT: "{{ .Values.service.torrent.ports.torrent.port }}"
# TRANSMISSION__PEER_PORT_RANDOM_HIGH: 65535
# TRANSMISSION__PEER_PORT_RANDOM_LOW: 49152
# TRANSMISSION__PEER_PORT_RANDOM_ON_START: false
# TRANSMISSION__PEER_SOCKET_TOS: default"
# TRANSMISSION__PEX_ENABLED: true
# TRANSMISSION__PORT_FORWARDING_ENABLED: false
# TRANSMISSION__PREALLOCATION: 1
# TRANSMISSION__PREFETCH_ENABLED: true
# TRANSMISSION__QUEUE_STALLED_ENABLED: true
# TRANSMISSION__QUEUE_STALLED_MINUTES: 30
# TRANSMISSION__RATIO_LIMIT: 2
# TRANSMISSION__RATIO_LIMIT_ENABLED: false
# TRANSMISSION__RENAME_PARTIAL_FILES: true
# TRANSMISSION__RPC_BIND_ADDRESS: "0.0.0.0"
# TRANSMISSION__RPC_ENABLED: true
# TRANSMISSION__RPC_HOST_WHITELIST: ""
# TRANSMISSION__RPC_HOST_WHITELIST_ENABLED: false
# TRANSMISSION__RPC_PORT: "{{ .Values.service.main.ports.main.port }}"
# TRANSMISSION__RPC_URL: "/transmission/"
# TRANSMISSION__RPC_WHITELIST: ""
# TRANSMISSION__RPC_WHITELIST_ENABLED: false
# TRANSMISSION__SCRAPE_PAUSED_TORRENTS_ENABLED: true
# TRANSMISSION__SCRIPT_TORRENT_DONE_ENABLED: false
# TRANSMISSION__SCRIPT_TORRENT_DONE_FILENAME: ""
# TRANSMISSION__SEED_QUEUE_ENABLED: false
# TRANSMISSION__SEED_QUEUE_SIZE: 10
# TRANSMISSION__SPEED_LIMIT_DOWN: 100
# TRANSMISSION__SPEED_LIMIT_DOWN_ENABLED: false
# TRANSMISSION__SPEED_LIMIT_UP: 100
# TRANSMISSION__SPEED_LIMIT_UP_ENABLED: false
# TRANSMISSION__START_ADDED_TORRENTS: true
# TRANSMISSION__TRASH_ORIGINAL_TORRENT_FILES: false
# TRANSMISSION__UMASK: 2
# TRANSMISSION__UPLOAD_SLOTS_PER_TORRENT: 14
# TRANSMISSION__UTP_ENABLED: true
# TRANSMISSION__WATCH_DIR: "/watch"
# TRANSMISSION__WATCH_DIR_ENABLED: false
destination:
server: {{ .Values.mainDestination }}
namespace: {{ .Values.mainNamespace }}
syncPolicy:
automated:
prune: true # Automatically remove resources no longer in the repo
selfHeal: true # Automatically self-heal when drift is detected
syncOptions:
- ApplyOutOfSyncOnly=true
- ServerSideApply=true
- CreateNamespace=true
ignoreDifferences:
- group: apps
kind: Deployment
jsonPointers:
- /spec/template/spec/hostUsers