From ffc9d0ebd14d707563a75e5079bcd7ef5689d0d0 Mon Sep 17 00:00:00 2001 From: nomadics9 Date: Sat, 1 Feb 2025 22:13:08 +0300 Subject: [PATCH] debrid syslinks base --- alaskarTV/alaskarfin/copyConfig.sh | 26 ++++ alaskarTV/alaskarfin/deployment-worker.yaml | 86 +++++++++++ alaskarTV/alaskarfin/deployment.yaml | 23 ++- alaskarTV/alaskarfin/service.yaml | 18 +++ alaskarTV/arr-database/configmap.yaml | 4 + alaskarTV/bazarr/deployment.yaml | 77 +++++++++- alaskarTV/bazarr/service.yaml | 16 ++ .../zurg-rdclient/deployment.yml | 138 ------------------ .../download-client/zurg-rdclient/service.yml | 33 ----- alaskarTV/ingress.yaml | 57 ++++++++ alaskarTV/pv.yaml | 87 ++++++----- alaskarTV/trackers/radarr/deployment.yaml | 95 +++++++++++- alaskarTV/trackers/radarr/service.yaml | 16 ++ alaskarTV/trackers/sonarr/deployment.yaml | 88 ++++++++++- alaskarTV/trackers/sonarr/service.yaml | 16 ++ alaskarTV/zurg/configMap.yml | 11 ++ alaskarTV/zurg/deployment.yml | 33 +++++ alaskarTV/zurg/service.yml | 16 ++ 18 files changed, 608 insertions(+), 232 deletions(-) create mode 100755 alaskarTV/alaskarfin/copyConfig.sh create mode 100644 alaskarTV/alaskarfin/deployment-worker.yaml delete mode 100644 alaskarTV/download-client/zurg-rdclient/deployment.yml delete mode 100644 alaskarTV/download-client/zurg-rdclient/service.yml create mode 100644 alaskarTV/zurg/configMap.yml create mode 100644 alaskarTV/zurg/deployment.yml create mode 100644 alaskarTV/zurg/service.yml diff --git a/alaskarTV/alaskarfin/copyConfig.sh b/alaskarTV/alaskarfin/copyConfig.sh new file mode 100755 index 0000000..16efe62 --- /dev/null +++ b/alaskarTV/alaskarfin/copyConfig.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +echo "Do you want to copy:" +echo "1) Into worker" +echo "2) From worker" +read -p "Enter your choice (1 or 2): " choice + +if [[ "$choice" == "1" ]]; then + echo "Copying into worker..." + sudo cp -r /SSD/media/configs/jellyarr/jellyfin_config/* /SSD/media/configs/jellyarr/jellyfin_worker_config/ + echo "Finished!" + +elif [[ "$choice" == "2" ]]; then + read -p "Are you sure you want to copy FROM worker? (y/n): " confirm + if [[ "$confirm" == "y" || "$confirm" == "Y" ]]; then + echo "Copying from worker..." + sudo cp -r /SSD/media/configs/jellyarr/jellyfin_worker_config/* /SSD/media/configs/jellyarr/jellyfin_config/ + echo "Finished!" + else + echo "Operation canceled." + fi + +else + echo "Invalid choice. Please enter 1 or 2." +fi + diff --git a/alaskarTV/alaskarfin/deployment-worker.yaml b/alaskarTV/alaskarfin/deployment-worker.yaml new file mode 100644 index 0000000..2c45dc7 --- /dev/null +++ b/alaskarTV/alaskarfin/deployment-worker.yaml @@ -0,0 +1,86 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + keel.sh/policy: minor + keel.sh/trigger: poll + keel.sh/pollSchedule: "@every 6h" + labels: + io.kompose.service: jellyfin-worker + name: jellyfin-worker +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: jellyfin-worker + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: jellyfin-worker + spec: + nodeSelector: + role: worker + securityContext: + supplementalGroups: + - 105 + runAsUser: 1000 + runAsGroup: 1000 + containers: + - env: + - name: PGID + value: "1000" + - name: PUID + value: "1000" + - name: TZ + value: Asia/Kuwait + securityContext: + privileged: true + image: nomadics/alaskarfin:latest + name: jellyfin + ports: + - containerPort: 8096 + protocol: TCP + volumeMounts: + - mountPath: /config + name: ssd + subPath: configs/jellyarr/jellyfin_worker_config + - mountPath: /data/tvshows + name: ssd + subPath: tvshows + - mountPath: /data/movies + name: ssd + subPath: movies + - mountPath: /data/anime + name: ssd + subPath: anime + - mountPath: /data/books/audiobooks + name: ssd + subPath: books/audiobooks + - mountPath: /data/books/ebooks + name: ssd + subPath: books/ebooks + - mountPath: /HDD + name: hdd + - mountPath: /mnt/zurg/__all__ + name: rclone-data + subPath: __all__ + - name: render-d128 + mountPath: /dev/dri/renderD128 + restartPolicy: Always + volumes: + - name: ssd + persistentVolumeClaim: + claimName: nfs-ssd-pvc + - name: hdd + persistentVolumeClaim: + claimName: nfs-hdd-pvc + - name: rclone-data + persistentVolumeClaim: + claimName: rclone-data-pvc + - name: render-d128 + hostPath: + path: /dev/dri/renderD128 + + diff --git a/alaskarTV/alaskarfin/deployment.yaml b/alaskarTV/alaskarfin/deployment.yaml index 6b53591..52a3a74 100644 --- a/alaskarTV/alaskarfin/deployment.yaml +++ b/alaskarTV/alaskarfin/deployment.yaml @@ -22,6 +22,10 @@ spec: spec: nodeSelector: role: master + securityContext: + supplementalGroups: + - 109 + - 44 containers: - env: - name: PGID @@ -31,9 +35,11 @@ spec: - name: TZ value: Asia/Kuwait - name: NVIDIA_VISIBLE_DEVICES - value: all # Make all GPUs visible + value: all - name: NVIDIA_DRIVER_CAPABILITIES - value: all # Required for Jellyfin hardware acceleration + value: all + securityContext: + privileged: true image: nomadics/alaskarfin:latest name: jellyfin ports: @@ -63,11 +69,13 @@ spec: - mountPath: /data/books/ebooks name: ssd subPath: books/ebooks - - mountPath: /data/HDD/media + - mountPath: /HDD name: hdd - - mountPath: /data/rclone/__all__ + - mountPath: /mnt/zurg/__all__ name: rclone-data - path: __all__ + subPath: __all__ + - name: render-d128 + mountPath: /dev/dri/renderD128 restartPolicy: Always runtimeClassName: nvidia volumes: @@ -80,4 +88,9 @@ spec: - name: rclone-data persistentVolumeClaim: claimName: rclone-data-pvc + - name: render-d128 + hostPath: + path: /dev/dri/renderD128 + + diff --git a/alaskarTV/alaskarfin/service.yaml b/alaskarTV/alaskarfin/service.yaml index 463cbe1..cb5f355 100644 --- a/alaskarTV/alaskarfin/service.yaml +++ b/alaskarTV/alaskarfin/service.yaml @@ -12,3 +12,21 @@ spec: targetPort: 8096 selector: io.kompose.service: jellyfin + +--- +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: jellyfin-worker + name: jellyfin-worker +spec: + type: ClusterIP + ports: + - name: "8096" + port: 8096 + targetPort: 8096 + selector: + io.kompose.service: jellyfin-worker + + diff --git a/alaskarTV/arr-database/configmap.yaml b/alaskarTV/arr-database/configmap.yaml index 5673a85..9edacdc 100644 --- a/alaskarTV/arr-database/configmap.yaml +++ b/alaskarTV/arr-database/configmap.yaml @@ -7,8 +7,12 @@ data: #!/bin/bash psql -U postgres <<-EOSQL CREATE DATABASE "radarr-log"; + CREATE DATABASE "radarr4k-main"; + CREATE DATABASE "radarr4k-log"; CREATE DATABASE "sonarr-main"; + CREATE DATABASE "sonarr4k-main"; CREATE DATABASE "sonarr-log"; + CREATE DATABASE "sonarr4k-log"; CREATE DATABASE "bazarr" CREATE DATABASE "prowlarr-main"; CREATE DATABASE "prowlarr-log"; diff --git a/alaskarTV/bazarr/deployment.yaml b/alaskarTV/bazarr/deployment.yaml index 66ce4e3..1d0ecbc 100644 --- a/alaskarTV/bazarr/deployment.yaml +++ b/alaskarTV/bazarr/deployment.yaml @@ -20,6 +20,8 @@ spec: labels: io.kompose.service: bazarr spec: + nodeSelector: + role: master containers: - env: - name: DOCKER_MODS @@ -54,7 +56,7 @@ spec: subPath: anime - mountPath: /HDD name: hdd - - mountPath: /data/rclone/__all__ + - mountPath: /mnt/zurg/__all__ name: rclone-data subPath: __all__ restartPolicy: Always @@ -69,3 +71,76 @@ spec: persistentVolumeClaim: claimName: rclone-data-pvc +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + keel.sh/policy: minor + keel.sh/trigger: poll + keel.sh/pollSchedule: "@every 6h" + labels: + io.kompose.service: bazarr4k + name: bazarr4k +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: bazarr4k + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: bazarr4k + spec: + nodeSelector: + role: worker + containers: + - env: + - name: DOCKER_MODS + value: wayller/bazarr-mod-subsync:latest + - name: PGID + value: "1000" + - name: PUID + value: "1000" + - name: TZ + value: Asia/Kuwait + image: linuxserver/bazarr:latest + name: bazarr + ports: + - containerPort: 6767 + protocol: TCP + # lifecycle: + # postStart: + # exec: + # command: ["/bin/sh", "-c", "cp /config/batch_sync.py / && pip install colorama tqdm autosubsync"] + volumeMounts: + - mountPath: /config + name: ssd + subPath: configs/trackers/bazarr4k_config + - mountPath: /tvshows + name: ssd + subPath: tvshows + - mountPath: /movies + name: ssd + subPath: movies + - mountPath: /anime + name: ssd + subPath: anime + - mountPath: /HDD + name: hdd + - mountPath: /mnt/zurg/__all__ + name: rclone-data + subPath: __all__ + restartPolicy: Always + volumes: + - name: ssd + persistentVolumeClaim: + claimName: nfs-ssd-pvc + - name: hdd + persistentVolumeClaim: + claimName: nfs-hdd-pvc + - name: rclone-data + persistentVolumeClaim: + claimName: rclone-data-pvc diff --git a/alaskarTV/bazarr/service.yaml b/alaskarTV/bazarr/service.yaml index 9122626..91adb01 100644 --- a/alaskarTV/bazarr/service.yaml +++ b/alaskarTV/bazarr/service.yaml @@ -12,3 +12,19 @@ spec: targetPort: 6767 selector: io.kompose.service: bazarr + +--- +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: bazarr4k + name: bazarr4k +spec: + type: ClusterIP + ports: + - name: "6767" + port: 6767 + targetPort: 6767 + selector: + io.kompose.service: bazarr4k diff --git a/alaskarTV/download-client/zurg-rdclient/deployment.yml b/alaskarTV/download-client/zurg-rdclient/deployment.yml deleted file mode 100644 index fa5d3ec..0000000 --- a/alaskarTV/download-client/zurg-rdclient/deployment.yml +++ /dev/null @@ -1,138 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: zurg -spec: - replicas: 1 - selector: - matchLabels: - app: zurg - template: - metadata: - labels: - app: zurg - spec: - containers: - - name: zurg - image: ghcr.io/debridmediamanager/zurg-testing:latest - ports: - - containerPort: 9999 - volumeMounts: - - name: ssd - mountPath: /app/jellyfin_update.sh - subPath: configs/zurg/app/jellyfin_update.sh - - name: ssd - mountPath: /app/config.yml - subPath: configs/zurg/app/config.yml - - name: rclone-data - mountPath: /app/data - volumes: - - name: ssd - persistentVolumeClaim: - claimName: nfs-ssd-pvc - - name: rclone-data - persistentVolumeClaim: - claimName: rclone-data-pvc - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: rclone -spec: - replicas: 1 - selector: - matchLabels: - app: rclone - template: - metadata: - labels: - app: rclone - spec: - containers: - - name: rclone - image: rclone/rclone:latest - env: - - name: TZ - value: Asia/Kuwait - securityContext: - capabilities: - add: ["SYS_ADMIN"] - privileged: true - volumeMounts: - - name: rclone-data - mountPath: /data - - name: ssd - mountPath: /config/rclone/rclone.conf - subPath: configs/rclone/rclone.conf - - name: dev-fuse - mountPath: /dev/fuse - command: ["rclone", "mount", "zurg:", "/data", "--allow-other", "--umask=0022", "--uid=1000", "--gid=1000", "--dir-perms=0775", "--file-perms=0664", "--poll-interval", "30s", "--allow-non-empty", "--allow-root", "--vfs-cache-mode", "full", "--dir-cache-time", "10s", "--cache-dir", "/SSD/media/configs/rclone/cache"] - volumes: - - name: dev-fuse - hostPath: - path: /dev/fuse - - name: ssd - persistentVolumeClaim: - claimName: nfs-ssd-pvc - - name: rclone-data - persistentVolumeClaim: - claimName: rclone-data-pvc - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: rdtclient -spec: - replicas: 1 - selector: - matchLabels: - app: rdtclient - template: - metadata: - labels: - app: rdtclient - spec: - containers: - - name: rdtclient - image: rogerfar/rdtclient - env: - - name: PUID - value: "1000" - - name: PGID - value: "1000" - - name: TZ - value: Asia/Kuwait - ports: - - containerPort: 6500 - volumeMounts: - - name: hdd - mountPath: /data/downloads - subPath: media/transmission/downloads/complete/ - - name: ssd - mountPath: /data/db - subPath: configs/rdtDB - - name: rclone-data - mountPath: /data/rclone/__all__ - subPath: __all__ - livenessProbe: - httpGet: - path: / - port: 6500 - initialDelaySeconds: 30 - periodSeconds: 30 - timeoutSeconds: 30 - failureThreshold: 3 - volumes: - - name: hdd - persistentVolumeClaim: - claimName: nfs-hdd-pvc - - name: ssd - persistentVolumeClaim: - claimName: nfs-ssd-pvc - - name: rclone-data - persistentVolumeClaim: - claimName: rclone-data-pvc - diff --git a/alaskarTV/download-client/zurg-rdclient/service.yml b/alaskarTV/download-client/zurg-rdclient/service.yml deleted file mode 100644 index 6041973..0000000 --- a/alaskarTV/download-client/zurg-rdclient/service.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: zurg - name: zurg -spec: - type: ClusterIP - ports: - - name: "9999" - port: 9999 - targetPort: 9999 - selector: - app: zurg - ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: rdtclient - name: rdtclient -spec: - type: ClusterIP - ports: - - name: "6500" - port: 6500 - targetPort: 6500 - selector: - app: rdtclient - ---- diff --git a/alaskarTV/ingress.yaml b/alaskarTV/ingress.yaml index 1b62f24..bf3fbce 100644 --- a/alaskarTV/ingress.yaml +++ b/alaskarTV/ingress.yaml @@ -9,6 +9,15 @@ spec: - websecure routes: - match: Host(`askar.tv`) || Host(`www.askar.tv`) + kind: Rule + middlewares: + - name : https-redirect + - name : analytics + namespace: umami + services: + - name: jellyfin-worker + port: 8096 + - match: Host(`gpu.askar.tv`) kind: Rule middlewares: - name : https-redirect @@ -44,6 +53,15 @@ spec: services: - name: bazarr port: 6767 + - match: Host(`sync4k.askar.tv`) + kind: Rule + middlewares: + - name : https-redirect + - name : analytics + namespace: umami + services: + - name: bazarr4k + port: 6767 - match: Host(`user.askar.tv`) kind: Rule middlewares: @@ -67,6 +85,13 @@ spec: services: - name: radarr port: 7878 + - match: Host(`rr4k.askar.tv`) + kind: Rule + middlewares: + - name : https-redirect + services: + - name: radarr4k + port: 7878 - match: Host(`sr.askar.tv`) kind: Rule middlewares: @@ -74,6 +99,13 @@ spec: services: - name: sonarr port: 8989 + - match: Host(`sr4k.askar.tv`) + kind: Rule + middlewares: + - name : https-redirect + services: + - name: sonarr4k + port: 8989 - match: Host(`dl.askar.tv`) kind: Rule middlewares: @@ -113,4 +145,29 @@ spec: tls: certResolver: le +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: media-services-internal + namespace: default +spec: + entryPoints: + - web + - websecure + routes: + - match: Host(`internal.askar.tv`) + kind: Rule + middlewares: + - name: lan-only + services: + - name: jellyfin-worker + port: 8096 + - match: Host(`internal2.askar.tv`) + kind: Rule + middlewares: + - name: lan-only + services: + - name: jellyseerr + port: 5055 diff --git a/alaskarTV/pv.yaml b/alaskarTV/pv.yaml index 65093f6..7533712 100644 --- a/alaskarTV/pv.yaml +++ b/alaskarTV/pv.yaml @@ -9,32 +9,11 @@ spec: accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain - csi: - driver: nfs.csi.k8s.io - volumeHandle: nfs-ssd - volumeAttributes: - server: 192.168.0.200 - share: /SSD/media + nfs: + server: 192.168.0.200 + path: /SSD/media ---- -apiVersion: v1 -kind: PersistentVolume -metadata: - name: rclone-data -spec: - capacity: - storage: 3Ti - accessModes: - - ReadWriteMany - persistentVolumeReclaimPolicy: Retain - csi: - driver: nfs.csi.k8s.io - volumeHandle: rclone-data - volumeAttributes: - server: 192.168.0.200 - share: /SSD/media/rclone-data - ---- +--- apiVersion: v1 kind: PersistentVolume metadata: @@ -45,26 +24,55 @@ spec: accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain - csi: - driver: nfs.csi.k8s.io - volumeHandle: nfs-hdd - volumeAttributes: - server: 192.168.0.200 - share: /HDD + nfs: + server: 192.168.0.200 + path: /HDD + --- apiVersion: v1 kind: PersistentVolume metadata: - name: alaskarserver-rclone + name: rclone-data spec: capacity: - storage: 3Ti + storage: 6Ti accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain - hostPath: - path: /mnt/zurg/__all__ + csi: + driver: csi-rclone + volumeHandle: rclone-data + volumeAttributes: + remote: "webdav" + remotePath: "/" + webdav-url: "http://192.168.0.200:30999/dav/" + allow-other: "true" + umask: "0022" + uid: "1000" + gid: "1000" + dir-perms: "0777" + file-perms: "0666" + poll-interval: "30s" + allow-non-empty: "true" + vfs-cache-mode: "full" + dir-cache-time: "10s" + # vfs-cache-max-age: "5m" + cache-dir: "/HDD/rclone-cache" --- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: mnt +spec: + capacity: + storage: 1Ti + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /mnt +--- + apiVersion: v1 kind: PersistentVolumeClaim metadata: @@ -88,7 +96,7 @@ spec: - ReadWriteMany resources: requests: - storage: 3Ti + storage: 6Ti volumeName: rclone-data storageClassName: "" @@ -109,12 +117,13 @@ spec: apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: alaskarserver-rclone-pvc + name: mnt-pvc spec: accessModes: - ReadWriteMany resources: requests: - storage: 3Ti - volumeName: alaskarserver-rclone + storage: 1Ti + volumeName: mnt storageClassName: "" +--- diff --git a/alaskarTV/trackers/radarr/deployment.yaml b/alaskarTV/trackers/radarr/deployment.yaml index aa76033..a4c0e0a 100644 --- a/alaskarTV/trackers/radarr/deployment.yaml +++ b/alaskarTV/trackers/radarr/deployment.yaml @@ -20,6 +20,11 @@ spec: labels: io.kompose.service: radarr spec: + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + nodeSelector: + role: master containers: - env: - name: PGID @@ -33,6 +38,8 @@ spec: ports: - containerPort: 7878 protocol: TCP + securityContext: + privileged: true volumeMounts: - mountPath: /config name: ssd @@ -40,16 +47,13 @@ spec: - mountPath: /movies name: ssd subPath: movies - # - mountPath: /downloads/complete - # name: hdd - # subPath: transmission/downloads/complete/ - # - mountPath: /data/HDD/media - # name: hdd - mountPath: /HDD name: hdd - - mountPath: /data/rclone/__all__ - name: rclone-data - subPath: __all__ + - mountPath: data/downloads + name: ssd + subPath: downloads + - mountPath: /mnt + name: mnt restartPolicy: Always volumes: - name: ssd @@ -61,4 +65,79 @@ spec: - name: rclone-data persistentVolumeClaim: claimName: rclone-data-pvc + - name: mnt + persistentVolumeClaim: + claimName: mnt-pvc + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + keel.sh/policy: minor + keel.sh/trigger: poll + keel.sh/pollSchedule: "@every 6h" + labels: + io.kompose.service: radarr4k + name: radarr4k +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: radarr4k + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: radarr4k + spec: + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + nodeSelector: + role: master + containers: + - env: + - name: PGID + value: "1000" + - name: PUID + value: "1000" + - name: TZ + value: Asia/Kuwait + image: linuxserver/radarr:latest + name: radarr + ports: + - containerPort: 7878 + protocol: TCP + securityContext: + privileged: true + volumeMounts: + - mountPath: /config + name: ssd + subPath: configs/trackers/radarr4k_config + - mountPath: /movies + name: ssd + subPath: movies + - mountPath: /HDD + name: hdd + - mountPath: data/downloads + name: ssd + subPath: downloads + - mountPath: /mnt + name: mnt + restartPolicy: Always + volumes: + - name: ssd + persistentVolumeClaim: + claimName: nfs-ssd-pvc + - name: hdd + persistentVolumeClaim: + claimName: nfs-hdd-pvc + - name: rclone-data + persistentVolumeClaim: + claimName: rclone-data-pvc + - name: mnt + persistentVolumeClaim: + claimName: mnt-pvc diff --git a/alaskarTV/trackers/radarr/service.yaml b/alaskarTV/trackers/radarr/service.yaml index 776799d..e416ca9 100644 --- a/alaskarTV/trackers/radarr/service.yaml +++ b/alaskarTV/trackers/radarr/service.yaml @@ -13,3 +13,19 @@ spec: selector: io.kompose.service: radarr +--- +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: radarr4k + name: radarr4k +spec: + type: ClusterIP + ports: + - name: "7878" + port: 7878 + targetPort: 7878 + selector: + io.kompose.service: radarr4k + diff --git a/alaskarTV/trackers/sonarr/deployment.yaml b/alaskarTV/trackers/sonarr/deployment.yaml index 9fbc62b..de09718 100644 --- a/alaskarTV/trackers/sonarr/deployment.yaml +++ b/alaskarTV/trackers/sonarr/deployment.yaml @@ -20,10 +20,16 @@ spec: labels: io.kompose.service: sonarr spec: + nodeSelector: + role: master containers: - env: + - name: PGID + value: "1000" - name: PUID value: "1000" + - name: TZ + value: Asia/Kuwait image: linuxserver/sonarr:latest name: sonarr ports: @@ -39,14 +45,13 @@ spec: - mountPath: /anime name: ssd subPath: anime - - mountPath: /downloads/complete - name: hdd - subPath: transmission/downloads/complete - mountPath: /HDD name: hdd - - mountPath: /data/rclone/__all__ - name: rclone-data - subPath: __all__ + - mountPath: data/downloads/complete + name: hdd + subPath: media/transmission/downloads/complete + - mountPath: /mnt + name: mnt restartPolicy: Always volumes: - name: ssd @@ -55,7 +60,74 @@ spec: - name: hdd persistentVolumeClaim: claimName: nfs-hdd-pvc - - name: rclone-data + - name: mnt persistentVolumeClaim: - claimName: rclone-data-pvc + claimName: mnt-pvc + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + keel.sh/policy: minor + keel.sh/trigger: poll + keel.sh/pollSchedule: "@every 6h" + labels: + io.kompose.service: sonarr4k + name: sonarr4k +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: sonarr4k + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.service: sonarr4k + spec: + nodeSelector: + role: master + containers: + - env: + - name: PGID + value: "1000" + - name: PUID + value: "1000" + - name: TZ + value: Asia/Kuwait + image: linuxserver/sonarr:latest + name: sonarr + ports: + - containerPort: 8989 + protocol: TCP + volumeMounts: + - mountPath: /config + name: ssd + subPath: configs/trackers/sonarr4k_config + - mountPath: /tvshows + name: ssd + subPath: tvshows + - mountPath: /anime + name: ssd + subPath: anime + - mountPath: /HDD + name: hdd + - mountPath: data/downloads/complete + name: hdd + subPath: media/transmission/downloads/complete + - mountPath: /mnt + name: mnt + restartPolicy: Always + volumes: + - name: ssd + persistentVolumeClaim: + claimName: nfs-ssd-pvc + - name: hdd + persistentVolumeClaim: + claimName: nfs-hdd-pvc + - name: mnt + persistentVolumeClaim: + claimName: mnt-pvc diff --git a/alaskarTV/trackers/sonarr/service.yaml b/alaskarTV/trackers/sonarr/service.yaml index d7428f4..b58c4d7 100644 --- a/alaskarTV/trackers/sonarr/service.yaml +++ b/alaskarTV/trackers/sonarr/service.yaml @@ -13,3 +13,19 @@ spec: selector: io.kompose.service: sonarr +--- +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: sonarr4k + name: sonarr4k +spec: + type: ClusterIP + ports: + - name: "8989" + port: 8989 + targetPort: 8989 + selector: + io.kompose.service: sonarr4k + diff --git a/alaskarTV/zurg/configMap.yml b/alaskarTV/zurg/configMap.yml new file mode 100644 index 0000000..768497e --- /dev/null +++ b/alaskarTV/zurg/configMap.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: rclone-config +data: + rclone.conf: | + [webdav] + type = webdav + url = http://192.168.0.200:30999/dav/ + vendor = other + diff --git a/alaskarTV/zurg/deployment.yml b/alaskarTV/zurg/deployment.yml new file mode 100644 index 0000000..ba9812d --- /dev/null +++ b/alaskarTV/zurg/deployment.yml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: zurg +spec: + replicas: 1 + selector: + matchLabels: + app: zurg + template: + metadata: + labels: + app: zurg + spec: + containers: + - name: zurg + image: ghcr.io/debridmediamanager/zurg-testing:latest + ports: + - containerPort: 9999 + volumeMounts: + - name: ssd + mountPath: /app/jellyfin_update.sh + subPath: configs/zurg/app/jellyfin_update.sh + - name: ssd + mountPath: /app/config.yml + subPath: configs/zurg/app/config.yml + - name: ssd + mountPath: /app/data + subPath: configs/zurg/app/data + volumes: + - name: ssd + persistentVolumeClaim: + claimName: nfs-ssd-pvc diff --git a/alaskarTV/zurg/service.yml b/alaskarTV/zurg/service.yml new file mode 100644 index 0000000..1b52663 --- /dev/null +++ b/alaskarTV/zurg/service.yml @@ -0,0 +1,16 @@ +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: zurg + name: zurg +spec: + type: NodePort + ports: + - name: "9999" + port: 9999 + targetPort: 9999 + nodePort: 30999 + selector: + app: zurg