diff --git a/apps-kustomized/jellyfin/deployment.yaml b/apps-kustomized/jellyfin/deployment.yaml new file mode 100644 index 0000000..b9c4559 --- /dev/null +++ b/apps-kustomized/jellyfin/deployment.yaml @@ -0,0 +1,72 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: jellyfin + name: jellyfin +spec: + replicas: 1 + selector: + matchLabels: + app: jellyfin + template: + metadata: + labels: + app: jellyfin + spec: + 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: docker.io/jellyfin/jellyfin:10.8.9 + imagePullPolicy: Always + name: jellyfin + ports: + - containerPort: 8096 + name: web + protocol: TCP + - containerPort: 1900 + name: dlna + protocol: UDP + volumeMounts: + - mountPath: /data2/media + name: runningseries + - mountPath: /films + name: films + - mountPath: /config + name: jellyfin-config + - mountPath: /music + name: music + - mountPath: /oldbigseries + name: oldseries + dnsPolicy: ClusterFirst + terminationGracePeriodSeconds: 30 + volumes: + - persistentVolumeClaim: + claimName: smb-series + name: runningseries + - name: jellyfin-config + persistentVolumeClaim: + claimName: jellyfin-config + - persistentVolumeClaim: + claimName: smb-music + name: music + - persistentVolumeClaim: + claimName: smb-films + name: films + - persistentVolumeClaim: + claimName: smb-oldseries + name: oldseries diff --git a/apps-kustomized/jellyfin/pvc-smb.yaml b/apps-kustomized/jellyfin/pvc-smb.yaml new file mode 100644 index 0000000..b41009e --- /dev/null +++ b/apps-kustomized/jellyfin/pvc-smb.yaml @@ -0,0 +1,47 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: smb-series +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: smb-series +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: smb-oldseries +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: smb-oldseries +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: smb-music +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: smb-music +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: smb-films +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: smb-films diff --git a/apps-kustomized/jellyfin/pvc-transcodescratch.yaml b/apps-kustomized/jellyfin/pvc-transcodescratch.yaml new file mode 100644 index 0000000..42d7ee8 --- /dev/null +++ b/apps-kustomized/jellyfin/pvc-transcodescratch.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: jellyfin-transcodes +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "100Gi" + storageClassName: rook-ceph-block-ssd diff --git a/apps-kustomized/jellyfin/pvc.yaml b/apps-kustomized/jellyfin/pvc.yaml new file mode 100644 index 0000000..60bb0f8 --- /dev/null +++ b/apps-kustomized/jellyfin/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: jellyfin-config +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "10Gi" + storageClassName: rook-ceph-block-ssd diff --git a/apps-kustomized/jellyfin/service-dlna.yaml b/apps-kustomized/jellyfin/service-dlna.yaml new file mode 100644 index 0000000..a9ddc4d --- /dev/null +++ b/apps-kustomized/jellyfin/service-dlna.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: jellyfin + name: jellyfin-dlna +spec: + ports: + - name: dlna + port: 9100 + protocol: UDP + selector: + app: jellyfin + type: LoadBalancer diff --git a/apps-kustomized/jellyfin/service-main.yaml b/apps-kustomized/jellyfin/service-main.yaml new file mode 100644 index 0000000..b89c209 --- /dev/null +++ b/apps-kustomized/jellyfin/service-main.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: jellyfin + name: jellyfin +spec: + ports: + - name: web + targetPort: 80 + port: 8096 + selector: + app: jellyfin + type: LoadBalancer diff --git a/everything-app/jellyfin.yaml b/everything-app/jellyfin.yaml new file mode 100644 index 0000000..91d5d3f --- /dev/null +++ b/everything-app/jellyfin.yaml @@ -0,0 +1,17 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: jellyfin + namespace: argocd +spec: + destination: + namespace: jellyfin + server: https://kubernetes.default.svc + project: apps + source: + path: apps-kustomized/jellyfin + repoURL: https://git.martyn.berlin/martyn/infra4talos + targetRevision: HEAD + syncPolicy: + automated: + selfHeal: true