From 34a6f7dc674258aacafeda985cc64a6e4cae39d7 Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Sun, 28 Dec 2025 03:31:50 +0530 Subject: [PATCH] add ingress, pvc, svc and deployment for ersatztv --- .../ipv6/media/ersatztv/ersatztv-ingress.yml | 27 ++++++++++ clusters/ipv6/media/ersatztv/ersatztv-pvc.yml | 14 +++++ clusters/ipv6/media/ersatztv/ersatztv-svc.yml | 13 +++++ clusters/ipv6/media/ersatztv/ersatztv.yml | 52 +++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 clusters/ipv6/media/ersatztv/ersatztv-ingress.yml create mode 100644 clusters/ipv6/media/ersatztv/ersatztv-pvc.yml create mode 100644 clusters/ipv6/media/ersatztv/ersatztv-svc.yml create mode 100644 clusters/ipv6/media/ersatztv/ersatztv.yml diff --git a/clusters/ipv6/media/ersatztv/ersatztv-ingress.yml b/clusters/ipv6/media/ersatztv/ersatztv-ingress.yml new file mode 100644 index 0000000..bd8a846 --- /dev/null +++ b/clusters/ipv6/media/ersatztv/ersatztv-ingress.yml @@ -0,0 +1,27 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ersatztv-ingress + namespace: media + annotations: + cert-manager.io/cluster-issuer: letsencrypt-cloudflare + traefik.ingress.kubernetes.io/router.middlewares: tools-authelia@kubernetescrd + traefik.ingress.kubernetes.io/router.entrypoints: websecure +spec: + ingressClassName: traefik + tls: + - hosts: + - ersatztv.akshun-lab.cc + secretName: ersatztv-tls + rules: + - host: ersatztv.akshun-lab.cc + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: ersatztv-service + port: + number: 8409 diff --git a/clusters/ipv6/media/ersatztv/ersatztv-pvc.yml b/clusters/ipv6/media/ersatztv/ersatztv-pvc.yml new file mode 100644 index 0000000..585a6b1 --- /dev/null +++ b/clusters/ipv6/media/ersatztv/ersatztv-pvc.yml @@ -0,0 +1,14 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: ersatztv-longhorn + namespace: media +spec: + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + resources: + requests: + storage: 3Gi + storageClassName: longhorn diff --git a/clusters/ipv6/media/ersatztv/ersatztv-svc.yml b/clusters/ipv6/media/ersatztv/ersatztv-svc.yml new file mode 100644 index 0000000..5cde3fe --- /dev/null +++ b/clusters/ipv6/media/ersatztv/ersatztv-svc.yml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: ersatztv-service + namespace: media +spec: + selector: + app: ersatztv + ports: + - port: 8409 + targetPort: 8409 + protocol: TCP diff --git a/clusters/ipv6/media/ersatztv/ersatztv.yml b/clusters/ipv6/media/ersatztv/ersatztv.yml new file mode 100644 index 0000000..c060f63 --- /dev/null +++ b/clusters/ipv6/media/ersatztv/ersatztv.yml @@ -0,0 +1,52 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ersatztv + namespace: media +spec: + strategy: + type: Recreate + replicas: 1 + selector: + matchLabels: + app: ersatztv + template: + metadata: + labels: + app: ersatztv + spec: + containers: + - name: ersatztv + image: jasongdove/ersatztv:v25.9.0 + ports: + - containerPort: 8409 + volumeMounts: + - name: data + mountPath: /root/.local/share/ersatztv + - name: i915 + mountPath: /dev/dri/ + - name: transcode + mountPath: /root/.local/share/etv-transcode + - name: merge + mountPath: /mnt/merge + securityContext: + privileged: true + resources: + requests: + gpu.intel.com/i915: "1" + limits: + gpu.intel.com/i915: "1" + volumes: + - name: data + persistentVolumeClaim: + claimName: ersatztv-longhorn + - name: i915 + hostPath: + path: /dev/dri + - name: merge + nfs: + server: 192.168.1.4 + path: /merge + - name: transcode + emptyDir: {}