Merge pull request #743 from 3dwardch3ng/app/jellyfin

App/jellyfin
This commit is contained in:
2024-08-05 00:11:59 +10:00
committed by GitHub
8 changed files with 263 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
helmCharts:
- name: jellyfin
repo: https://beluga-cloud.github.io/charts
version: 2.3.0
releaseName: jellyfin
valuesFile: values.yaml

View File

@@ -0,0 +1,148 @@
persistence:
config:
enabled: true
volumeClaimSpec:
accessModes:
- ReadWriteOnce
volumeName: jellyfin-config
storageClassName: local-path
data:
enabled: true
volumeClaimSpec:
accessModes:
- ReadWriteOnce
volumeName: jellyfin-data
storageClassName: local-path
jellyfin:
mediaVolumes:
- name: movies
readOnly: false
volumeSpec:
storageClassName: local-path
volumeMode: Filesystem
capacity:
storage: 256Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: jellyfin-mediavol-movies
namespace: jellyfin
hostPath:
path: "/mnt/nfs/AppData/jellyfin/media/movies"
type: "Directory"
- name: series
readOnly: false
volumeSpec:
storageClassName: local-path
volumeMode: Filesystem
capacity:
storage: 256Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: jellyfin-mediavol-series
namespace: jellyfin
hostPath:
path: "/mnt/nfs/AppData/jellyfin/media/series"
type: "Directory"
- name: music-videos
readOnly: false
volumeSpec:
storageClassName: local-path
volumeMode: Filesystem
capacity:
storage: 128Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: jellyfin-mediavol-music-videos
namespace: jellyfin
hostPath:
path: "/mnt/nfs/AppData/jellyfin/media/music-videos"
type: "Directory"
- name: short-videos
readOnly: false
volumeSpec:
storageClassName: local-path
volumeMode: Filesystem
capacity:
storage: 32Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: jellyfin-mediavol-short-videos
namespace: jellyfin
hostPath:
path: "/mnt/nfs/AppData/jellyfin/media/short-videos"
type: "Directory"
- name: gv
readOnly: false
volumeSpec:
storageClassName: local-path
volumeMode: Filesystem
capacity:
storage: 64Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: jellyfin-mediavol-gv
namespace: jellyfin
hostPath:
path: "/mnt/nfs/AppData/jellyfin/media/gv"
type: "Directory"
persistentTranscodes: true

View File

@@ -0,0 +1,12 @@
{
"appName": "jellyfin",
"userGivenName": "jellyfin",
"namespace": "jellyfin",
"destNamespace": "jellyfin",
"destServer": "https://kubernetes.default.svc",
"srcPath": "apps/jellyfin/env/k3s-cluster",
"srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git",
"srcTargetRevision": "",
"labels": null,
"annotations": null
}

View File

@@ -0,0 +1,31 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jellyfin-ingress
namespace: jellyfin
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
ingressClassName: nginx
rules:
- host: "jellyfin.cluster.local"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: jellyfin
port:
number: 8096
- host: "jellyfin.cluster.edward.sydney"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: jellyfin
port:
number: 8096

View File

@@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
- ./ingress.yaml

View File

@@ -0,0 +1,25 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: jellyfin-config
namespace: jellyfin
labels:
type: local
spec:
storageClassName: local-path
volumeMode: Filesystem
capacity:
storage: 250Mi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
local:
path: "/mnt/nfs/AppData/jellyfin/config"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux

View File

@@ -0,0 +1,25 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: jellyfin-data
namespace: jellyfin
labels:
type: local
spec:
storageClassName: local-path
volumeMode: Filesystem
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
local:
path: "/mnt/nfs/AppData/jellyfin/data"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux

View File

@@ -0,0 +1,9 @@
apiVersion: v1
kind: Namespace
metadata:
annotations:
argocd.argoproj.io/sync-options: Prune=false
creationTimestamp: null
name: jellyfin
spec: {}
status: {}