From 4da6c3eb1028f49dbd5d501e7c13bf68a8725b0b Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Tue, 15 Apr 2025 08:25:00 +0530 Subject: [PATCH] feat: add ersatztv deployment, service, persistent volume, and persistent volume claim configurations --- cluster/apps/ersatztv/ersatztv-pv.yml | 23 +++++++++++++ cluster/apps/ersatztv/ersatztv-pvc.yml | 27 +++++++++++++++ cluster/apps/ersatztv/ersatztv-svc.yml | 16 +++++++++ cluster/apps/ersatztv/ersatztv.yml | 46 ++++++++++++++++++++++++++ 4 files changed, 112 insertions(+) create mode 100644 cluster/apps/ersatztv/ersatztv-pv.yml create mode 100644 cluster/apps/ersatztv/ersatztv-pvc.yml create mode 100644 cluster/apps/ersatztv/ersatztv-svc.yml create mode 100644 cluster/apps/ersatztv/ersatztv.yml diff --git a/cluster/apps/ersatztv/ersatztv-pv.yml b/cluster/apps/ersatztv/ersatztv-pv.yml new file mode 100644 index 0000000..cd40452 --- /dev/null +++ b/cluster/apps/ersatztv/ersatztv-pv.yml @@ -0,0 +1,23 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: jellyfin-intel-pv + namespace: default +spec: + capacity: + storage: 10Gi + accessModes: + - ReadOnlyMany + storageClassName: jellyfin-intel-pv + hostPath: + path: "/dev/dri/renderD128" + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: gpu + operator: In + values: + - intel + diff --git a/cluster/apps/ersatztv/ersatztv-pvc.yml b/cluster/apps/ersatztv/ersatztv-pvc.yml new file mode 100644 index 0000000..ead2f9c --- /dev/null +++ b/cluster/apps/ersatztv/ersatztv-pvc.yml @@ -0,0 +1,27 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: jellyfin-intel-pvc + namespace: default +spec: + storageClassName: jellyfin-intel-pv + resources: + requests: + storage: 10Gi + accessModes: + - ReadOnlyMany + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: longhorn-ersatztv + namespace: default +spec: + accessModes: + - ReadWriteMany + storageClassName: longhorn + resources: + requests: + storage: 1Gi \ No newline at end of file diff --git a/cluster/apps/ersatztv/ersatztv-svc.yml b/cluster/apps/ersatztv/ersatztv-svc.yml new file mode 100644 index 0000000..fa24695 --- /dev/null +++ b/cluster/apps/ersatztv/ersatztv-svc.yml @@ -0,0 +1,16 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: ersatztv-service + namespace: default +spec: + type: NodePort + selector: + app: ersatztv + ports: + - port: 8409 + targetPort: 8409 + nodePort: 8409 + protocol: TCP + diff --git a/cluster/apps/ersatztv/ersatztv.yml b/cluster/apps/ersatztv/ersatztv.yml new file mode 100644 index 0000000..c4ae93e --- /dev/null +++ b/cluster/apps/ersatztv/ersatztv.yml @@ -0,0 +1,46 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ersatztv + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app: ersatztv + template: + metadata: + labels: + app: ersatztv + spec: + securityContext: + runAsGroup: 0 + runAsUser: 0 + supplementalGroups: + - 128 + - 226 + - 106 + containers: + - name: ersatztv + image: jasongdove/ersatztv:v25.1.0-vaapi + ports: + - containerPort: 8409 + volumeMounts: + - name: data + mountPath: /root/.local/share/ersatztv + - name: intel + mountPath: /dev/dri/renderD128 + - name: transcode + mountPath: /root/.local/share/etv-transcode + securityContext: + privileged: true + volumes: + - name: data + persistentVolumeClaim: + claimName: longhorn-ersatztv + - name: transcode + emptyDir: {} + - name: intel + persistentVolumeClaim: + claimName: jellyfin-intel-pvc