add media services

This commit is contained in:
2025-03-19 20:00:55 +01:00
parent 923cc6dd52
commit ce802a4891
25 changed files with 523 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- shared-downloads-pvc.yaml
- radarr-config-pvc.yaml
- sonarr-config-pvc.yaml
- sonarr-deploy.yaml
- radarr-deploy.yaml
- sonarr-svc.yaml
- radarr-svc.yaml
- sonarr-ingress.yaml
- radarr-ingress.yaml

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: jellyfin

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: radarr-config
namespace: jellyfin
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi

View File

@@ -0,0 +1,45 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: radarr
namespace: jellyfin
spec:
replicas: 1
selector:
matchLabels:
app: radarr
template:
metadata:
labels:
app: radarr
spec:
containers:
- name: radarr
image: lscr.io/linuxserver/radarr:latest
ports:
- containerPort: 7878
env:
- name: PUID
value: "0"
- name: PGID
value: "0"
- name: TZ
value: Europe/Rome
volumeMounts:
- name: config
mountPath: /config
- name: media
mountPath: /movies
subPath: movies
- name: downloads
mountPath: /downloads
volumes:
- name: config
persistentVolumeClaim:
claimName: radarr-config
- name: media
persistentVolumeClaim:
claimName: media-rwx-pvc
- name: downloads
persistentVolumeClaim:
claimName: deluge-downloads

View File

@@ -0,0 +1,24 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: radarr-ingress
namespace: jellyfin
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- radarr.beatrice.wtf
secretName: radarr-tls
rules:
- host: radarr.beatrice.wtf
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: radarr
port:
number: 80

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: radarr
namespace: jellyfin
spec:
selector:
app: radarr
ports:
- protocol: TCP
port: 80
targetPort: 7878

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: deluge-downloads
namespace: jellyfin
spec:
accessModes:
- ReadWriteMany
storageClassName: longhorn
resources:
requests:
storage: 100Gi

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sonarr-config
namespace: jellyfin
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi

View File

@@ -0,0 +1,48 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: sonarr
namespace: jellyfin
spec:
replicas: 1
selector:
matchLabels:
app: sonarr
template:
metadata:
labels:
app: sonarr
spec:
containers:
- name: sonarr
image: lscr.io/linuxserver/sonarr:latest
ports:
- containerPort: 8989
env:
- name: PUID
value: "0"
- name: PGID
value: "0"
- name: TZ
value: Europe/Rome
volumeMounts:
- name: config
mountPath: /config
- name: media
mountPath: /tv
subPath: series
- name: media
mountPath: /anime
subPath: anime
- name: downloads
mountPath: /downloads
volumes:
- name: config
persistentVolumeClaim:
claimName: sonarr-config
- name: media
persistentVolumeClaim:
claimName: media-rwx-pvc
- name: downloads
persistentVolumeClaim:
claimName: deluge-downloads

View File

@@ -0,0 +1,24 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sonarr-ingress
namespace: jellyfin
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- sonarr.beatrice.wtf
secretName: sonarr-tls
rules:
- host: sonarr.beatrice.wtf
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: sonarr
port:
number: 80

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: sonarr
namespace: jellyfin
spec:
selector:
app: sonarr
ports:
- protocol: TCP
port: 80
targetPort: 8989