From 2b2296cc2ed26c5434b230804542ac6f8aa3cb97 Mon Sep 17 00:00:00 2001 From: Nathan Rashleigh Date: Mon, 10 Mar 2025 20:47:23 +1100 Subject: [PATCH] seeerrrr --- media/jellyfin-ingress.yaml | 35 +++++++++------ media/jellyfin.yaml | 80 ++++++++++++++++++----------------- media/jellyseerr-ingress.yaml | 50 ++++++++++++++++++++++ media/jellyseerr.yaml | 57 +++++++++++++++++++++++++ storage/openebs.yaml | 36 ++++++++++++++++ 5 files changed, 207 insertions(+), 51 deletions(-) create mode 100644 media/jellyseerr-ingress.yaml create mode 100644 media/jellyseerr.yaml diff --git a/media/jellyfin-ingress.yaml b/media/jellyfin-ingress.yaml index 6529793..289c0b1 100644 --- a/media/jellyfin-ingress.yaml +++ b/media/jellyfin-ingress.yaml @@ -9,10 +9,10 @@ metadata: namespace: media spec: ports: - - name: web - port: 8096 - protocol: TCP - targetPort: 8096 + - name: web + port: 8096 + protocol: TCP + targetPort: 8096 selector: app: jellyfin type: ClusterIP @@ -29,11 +29,22 @@ spec: rules: - host: jellyfin.nightowl.strix.systems http: - paths: - - backend: - service: - name: jellyfin - port: - name: web - path: / - pathType: Prefix \ No newline at end of file + paths: + - backend: + service: + name: jellyfin + port: + name: web + path: / + pathType: Prefix + - host: jf.ntwl.xyz + http: + paths: + - backend: + service: + name: jellyfin + port: + name: web + path: / + pathType: Prefix + diff --git a/media/jellyfin.yaml b/media/jellyfin.yaml index e02a501..b7ee15e 100644 --- a/media/jellyfin.yaml +++ b/media/jellyfin.yaml @@ -25,50 +25,53 @@ spec: # USE GPU runtimeClassName: nvidia - containers: - - env: - - name: NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - image: jellyfin/jellyfin - imagePullPolicy: IfNotPresent - name: jellyfin - ports: - - containerPort: 8096 - protocol: TCP - volumeMounts: - - mountPath: /media - name: jellyfin-media - readOnly: True - - mountPath: /config - name: jellyfin-config restartPolicy: Always + + containers: + - image: jellyfin/jellyfin + imagePullPolicy: Always + name: jellyfin + env: + - name: NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + ports: + - containerPort: 8096 + protocol: TCP + volumeMounts: + - mountPath: /media + name: jellyfin-media + readOnly: true + - mountPath: /config + name: jellyfin-config + volumes: - - name: jellyfin-media - persistentVolumeClaim: - claimName: jellyfin-media - - name: jellyfin-config - persistentVolumeClaim: - claimName: jellyfin-config + - name: jellyfin-media + persistentVolumeClaim: + claimName: media + - name: jellyfin-config + persistentVolumeClaim: + claimName: jellyfin-config --- + kind: PersistentVolumeClaim apiVersion: v1 metadata: - name: jellyfin-media + name: media namespace: media spec: storageClassName: slow @@ -76,7 +79,7 @@ spec: - ReadWriteOnce resources: requests: - storage: 32Gi + storage: 4Ti --- @@ -86,10 +89,9 @@ metadata: name: jellyfin-config namespace: media spec: - storageClassName: fast + storageClassName: zfs-fast accessModes: - ReadWriteOnce resources: requests: storage: 8Gi - diff --git a/media/jellyseerr-ingress.yaml b/media/jellyseerr-ingress.yaml new file mode 100644 index 0000000..c233c1b --- /dev/null +++ b/media/jellyseerr-ingress.yaml @@ -0,0 +1,50 @@ +--- + +apiVersion: v1 +kind: Service +metadata: + labels: + app: jellyseerr + name: jellyseerr + namespace: media +spec: + ports: + - name: web + port: 5055 + protocol: TCP + targetPort: 5055 + selector: + app: jellyseerr + type: ClusterIP + +--- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: jellyseerr-ingress + namespace: media +spec: + ingressClassName: haproxy + rules: + - host: jellyseerr.nightowl.strix.systems + http: + paths: + - backend: + service: + name: jellyseerr + port: + name: web + path: / + pathType: Prefix + + - host: js.ntwl.xyz + http: + paths: + - backend: + service: + name: jellyseerr + port: + name: web + path: / + pathType: Prefix diff --git a/media/jellyseerr.yaml b/media/jellyseerr.yaml new file mode 100644 index 0000000..6b6873f --- /dev/null +++ b/media/jellyseerr.yaml @@ -0,0 +1,57 @@ +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: jellyseerr + namespace: media +spec: + selector: + matchLabels: + app: jellyseerr + template: + metadata: + labels: + app: jellyseerr + spec: + restartPolicy: Always + containers: + - image: ghcr.io/fallenbagel/jellyseerr + imagePullPolicy: Always + name: jellyseerr + env: + - name: TZ + value: Australia/Melbourne + ports: + - containerPort: 5055 + name: web + protocol: TCP + volumeMounts: + # - mountPath: /media + # name: jellyseerr-media + # readOnly: true + - mountPath: /app/config + name: jellyseerr-config + + volumes: + # - name: jellyseerr-media + # persistentVolumeClaim: + # claimName: media + - name: jellyseerr-config + persistentVolumeClaim: + claimName: jellyseerr-config + +--- + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: jellyseerr-config + namespace: media +spec: + storageClassName: zfs-fast + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi diff --git a/storage/openebs.yaml b/storage/openebs.yaml index 8361e4d..069e290 100644 --- a/storage/openebs.yaml +++ b/storage/openebs.yaml @@ -59,6 +59,42 @@ provisioner: zfs.csi.openebs.io --- +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: zfs-fast-shared +parameters: + poolname: "fast/k8s" + recordsize: "128k" + + shared: "yes" + compression: "off" + dedup: "off" + fstype: "zfs" + +provisioner: zfs.csi.openebs.io + +--- + +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: zfs-slow-shared +parameters: + poolname: "slow/k8s" + # https://www.zfshandbook.com/docs/advanced-zfs/performance-tuning/ + recordsize: "1M" + + shared: "yes" + compression: "off" + dedup: "off" + fstype: "zfs" + +provisioner: zfs.csi.openebs.io + +--- + + apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: