diff --git a/apps/openebs.yaml b/apps/openebs.yaml index 02c8938..030bdda 100644 --- a/apps/openebs.yaml +++ b/apps/openebs.yaml @@ -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 diff --git a/apps/transmission.yaml b/apps/transmission.yaml index abef512..f9ae800 100644 --- a/apps/transmission.yaml +++ b/apps/transmission.yaml @@ -17,4 +17,4 @@ spec: source: repoURL: https://github.com/zoriya/snow targetRevision: HEAD - path: apps/transmission + path: charts/transmission diff --git a/charts/transmission/deployment.yaml b/charts/transmission/deployment.yaml index 676cae1..1ff52a2 100644 --- a/charts/transmission/deployment.yaml +++ b/charts/transmission/deployment.yaml @@ -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 diff --git a/charts/transmission/kustomization.yaml b/charts/transmission/kustomization.yaml new file mode 100644 index 0000000..08efcef --- /dev/null +++ b/charts/transmission/kustomization.yaml @@ -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 diff --git a/charts/transmission/pv-config.yaml b/charts/transmission/pv-config.yaml new file mode 100644 index 0000000..4df377c --- /dev/null +++ b/charts/transmission/pv-config.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: config +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 512Mi diff --git a/charts/transmission/pv-downloads.yaml b/charts/transmission/pv-downloads.yaml new file mode 100644 index 0000000..e1c5bf5 --- /dev/null +++ b/charts/transmission/pv-downloads.yaml @@ -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 diff --git a/charts/transmission/pv-medias.yaml b/charts/transmission/pv-medias.yaml new file mode 100644 index 0000000..f7d318c --- /dev/null +++ b/charts/transmission/pv-medias.yaml @@ -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 diff --git a/charts/transmission/service.yaml b/charts/transmission/service.yaml new file mode 100644 index 0000000..375e9ec --- /dev/null +++ b/charts/transmission/service.yaml @@ -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