wip: Add transmission

This commit is contained in:
2025-07-30 18:39:48 +02:00
parent 9b3480ec29
commit 8bf0fe0cad
8 changed files with 183 additions and 24 deletions

View File

@@ -53,12 +53,32 @@ parameters:
poolname: tank
provisioner: zfs.csi.openebs.io
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
apiVersion: zfs.openebs.io/v1
kind: ZFSVolume
metadata:
name: openebs-zfs-ocean
parameters:
compression: zstd
fstype: zfs
poolname: ocean
provisioner: zfs.csi.openebs.io
name: downloads
namespace: openebs
spec:
capacity: 16Ti
fsType: zfs
ownerNodeID: kadan
poolName: ocean
volumeType: DATASET
shared: "yes"
status:
state: Ready
---
apiVersion: zfs.openebs.io/v1
kind: ZFSVolume
metadata:
name: medias
namespace: openebs
spec:
capacity: 16Ti
fsType: zfs
ownerNodeID: kadan
poolName: ocean
volumeType: DATASET
shared: "yes"
status:
state: Ready

View File

@@ -17,4 +17,4 @@ spec:
source:
repoURL: https://github.com/zoriya/snow
targetRevision: HEAD
path: apps/transmission
path: charts/transmission

View File

@@ -5,20 +5,57 @@ metadata:
spec:
template:
spec:
securityContext:
fsGroup: 1001
runAsUser: 1001
runAsGroup: 1001
runAsNonRoot: true
fsGroupChangePolicy: OnRootMismatch
containers:
- name: transmission
image: ghcr.io/home-operations/transmission@4.0.6
env:
- TRANSMISSION__UMASK: "002"
- TRANSMISSION__INCOMPLETE-DIR-ENABLED: false
- TRANSMISSION__DOWNLOAD-DIR: "/medias/downloads"
- TRANSMISSION__DOWNLOAD-QUEUE-ENABLED: false
- TRANSMISSION__RENAME-PARTIAL-FILES: false
- TRANSMISSION__TRASH-CAN-ENABLED: false
- TRANSMISSION__SCRIPT-TORRENT-ADDED-ENABLED: true
- TRANSMISSION__SCRIPT-TORRENT-ADDED-FILENAME: "scripts/guesspath"
volumeMounts:
- name: medias
mountPath: /medias
volumes:
- name: transmission
image: ghcr.io/home-operations/transmission:4.0.6
env:
- name: TRANSMISSION__UMASK
value: "002"
- name: TRANSMISSION__INCOMPLETE_DIR_ENABLED
value: "false"
- name: TRANSMISSION__DOWNLOAD_DIR
value: "/downloads"
- name: TRANSMISSION__DOWNLOAD_QUEUE_ENABLED
value: "false"
- name: TRANSMISSION__RENAME_PARTIAL_FILES
value: "false"
- name: TRANSMISSION__TRASH_CAN_ENABLED
value: "false"
- name: TRANSMISSION__SCRIPT_TORRENT_ADDED_ENABLED
value: "true"
# - name: TRANSMISSION__SCRIPT_TORRENT_ADDED_FILENAME
# value: "scripts/guesspath"
- name: TRANSMISSION__RPC_PORT
value: "9091"
- name: TRANSMISSION__PEER_PORT
value: "27071"
volumeMounts:
- name: config
mountPath: /config
- name: downloads
mountPath: /downloads
- name: medias
mountPath: /medias
- name: flood
image: jesec/flood:4.9.5
volumeMounts:
- name: downloads
mountPath: /downloads
- name: medias
mountPath: /medias
volumes:
- name: config
persistentVolumeClaim:
claimName: config
- name: medias
persistentVolumeClaim:
claimName: medias
- name: downloads
persistentVolumeClaim:
claimName: downloads

View File

@@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
labels:
- includeSelectors: true
pairs:
app.kubernetes.io/name: transmission
resources:
- ./deployment.yaml
- ./service.yaml
- ./pv-downloads.yaml
- ./pv-medias.yaml
- ./pv-config.yaml

View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: config
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 512Mi

View File

@@ -0,0 +1,29 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: transmission-downloads
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Ti
csi:
driver: zfs.csi.openebs.io
fsType: zfs
volumeAttributes:
openebs.io/poolname: ocean
volumeHandle: "downloads"
persistentVolumeReclaimPolicy: Retain
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: downloads
spec:
storageClassName: ""
volumeName: transmission-downloads
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Ti

View File

@@ -0,0 +1,29 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: transmission-medias
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 200Ti
csi:
driver: zfs.csi.openebs.io
fsType: zfs
volumeAttributes:
openebs.io/poolname: ocean
volumeHandle: "medias"
persistentVolumeReclaimPolicy: Retain
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: medias
spec:
storageClassName: ""
volumeName: transmission-medias
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Ti

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: transmission
spec:
type: ClusterIP
ports:
- name: rpc
port: 9091
targetPort: 9091
- name: bittorrent-tcp
port: 27071
targetPort: 27071
- name: utptcp
port: 51413
targetPort: 51413
- name: utpudp
port: 51413
protocol: UDP
targetPort: 51413