From 4ce807e33ceadc2e8723fc3e07b1215252d1ad05 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Fri, 23 Oct 2026 09:48:47 +0200 Subject: [PATCH] Declare Plex and Jellyfin GitOps applications and transfer routes --- apps/jellyfin/values.yaml | 26 +++++++++++++++ apps/plex/values.yaml | 24 ++++++++++++++ ...n-ingressroute-jellyfin-brunner-ninja.json | 0 ...-middleware-jellyfin-metrics-internal.json | 0 .../plex-ingressroute-plex-brunner-ninja.json | 0 bootstrap/jellyfin.yaml | 26 +++++++++++++++ bootstrap/kustomization.yaml | 3 ++ bootstrap/media-project.yaml | 32 +++++++++++++++++++ bootstrap/plex.yaml | 26 +++++++++++++++ 9 files changed, 137 insertions(+) create mode 100644 apps/jellyfin/values.yaml create mode 100644 apps/plex/values.yaml rename apps/traefik/routes/{ => _deleted}/jellyfin-ingressroute-jellyfin-brunner-ninja.json (100%) rename apps/traefik/routes/{ => _deleted}/jellyfin-middleware-jellyfin-metrics-internal.json (100%) rename apps/traefik/routes/{ => _deleted}/plex-ingressroute-plex-brunner-ninja.json (100%) create mode 100644 bootstrap/jellyfin.yaml create mode 100644 bootstrap/media-project.yaml create mode 100644 bootstrap/plex.yaml diff --git a/apps/jellyfin/values.yaml b/apps/jellyfin/values.yaml new file mode 100644 index 0000000..020b804 --- /dev/null +++ b/apps/jellyfin/values.yaml @@ -0,0 +1,26 @@ +media: + hostPath: /komposthaufen/multimedia + mountPath: /komposthaufen/multimedia +nodeSelector: + kubernetes.io/hostname: arschrock + media.brunner.ninja/multimedia-ready: "true" +tolerations: +- key: node-role.kubernetes.io/control-plane + operator: Exists + effect: NoSchedule +persistence: + existingClaim: jellyfin-config +timezone: Europe/Vienna +publishedServerUrl: https://jellyfin.brunner.ninja +resources: + requests: + cpu: 500m + memory: 2Gi + ephemeral-storage: 1Gi +ingress: + enabled: true + name: jellyfin-brunner-ninja + host: jellyfin.brunner.ninja +monitoring: + enabled: true + allowedSourceRange: 10.0.0.0/8 diff --git a/apps/plex/values.yaml b/apps/plex/values.yaml new file mode 100644 index 0000000..fc0b4e4 --- /dev/null +++ b/apps/plex/values.yaml @@ -0,0 +1,24 @@ +media: + hostPath: /komposthaufen/multimedia + mountPath: /komposthaufen/multimedia +nodeSelector: + kubernetes.io/hostname: arschrock + media.brunner.ninja/multimedia-ready: "true" +tolerations: +- key: node-role.kubernetes.io/control-plane + operator: Exists + effect: NoSchedule +persistence: + existingClaim: plex-config +timezone: Europe/Vienna +resources: + requests: + cpu: 500m + memory: 2Gi + ephemeral-storage: 1Gi +ingress: + enabled: true + name: plex-brunner-ninja + host: plex.brunner.ninja +monitoring: + enabled: true diff --git a/apps/traefik/routes/jellyfin-ingressroute-jellyfin-brunner-ninja.json b/apps/traefik/routes/_deleted/jellyfin-ingressroute-jellyfin-brunner-ninja.json similarity index 100% rename from apps/traefik/routes/jellyfin-ingressroute-jellyfin-brunner-ninja.json rename to apps/traefik/routes/_deleted/jellyfin-ingressroute-jellyfin-brunner-ninja.json diff --git a/apps/traefik/routes/jellyfin-middleware-jellyfin-metrics-internal.json b/apps/traefik/routes/_deleted/jellyfin-middleware-jellyfin-metrics-internal.json similarity index 100% rename from apps/traefik/routes/jellyfin-middleware-jellyfin-metrics-internal.json rename to apps/traefik/routes/_deleted/jellyfin-middleware-jellyfin-metrics-internal.json diff --git a/apps/traefik/routes/plex-ingressroute-plex-brunner-ninja.json b/apps/traefik/routes/_deleted/plex-ingressroute-plex-brunner-ninja.json similarity index 100% rename from apps/traefik/routes/plex-ingressroute-plex-brunner-ninja.json rename to apps/traefik/routes/_deleted/plex-ingressroute-plex-brunner-ninja.json diff --git a/bootstrap/jellyfin.yaml b/bootstrap/jellyfin.yaml new file mode 100644 index 0000000..0bbb0e3 --- /dev/null +++ b/bootstrap/jellyfin.yaml @@ -0,0 +1,26 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: jellyfin + namespace: argocd +spec: + project: media + sources: + - repoURL: https://brunner.ninja/charts + chart: jellyfin + targetRevision: 12.2.0 + helm: + releaseName: jellyfin + valueFiles: + - $values/apps/jellyfin/values.yaml + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + destination: + server: https://kubernetes.default.svc + namespace: jellyfin + syncPolicy: + automated: + enabled: false + prune: false + selfHeal: false diff --git a/bootstrap/kustomization.yaml b/bootstrap/kustomization.yaml index bfc6c5d..2c46ec9 100644 --- a/bootstrap/kustomization.yaml +++ b/bootstrap/kustomization.yaml @@ -80,6 +80,9 @@ resources: - wiki-js-postgresql.yaml - homeassistant-postgresql.yaml - home-assistant.yaml +- media-project.yaml +- plex.yaml +- jellyfin.yaml - paperless-project.yaml - paperless-storage.yaml - pdf-editor.yaml diff --git a/bootstrap/media-project.yaml b/bootstrap/media-project.yaml new file mode 100644 index 0000000..4404a4d --- /dev/null +++ b/bootstrap/media-project.yaml @@ -0,0 +1,32 @@ +apiVersion: argoproj.io/v1alpha1 +kind: AppProject +metadata: + name: media + namespace: argocd +spec: + description: Plex and Jellyfin media servers pinned to arschrock + sourceRepos: + - https://brunner.ninja/charts + - https://code.brunner.ninja/feedc0de/homelab-gitops.git + destinations: + - namespace: plex + server: https://kubernetes.default.svc + - namespace: jellyfin + server: https://kubernetes.default.svc + namespaceResourceWhitelist: + - group: "" + kind: ConfigMap + - group: "" + kind: PersistentVolumeClaim + - group: "" + kind: Service + - group: apps + kind: Deployment + - group: traefik.io + kind: IngressRoute + - group: traefik.io + kind: Middleware + - group: monitoring.coreos.com + kind: ServiceMonitor + - group: monitoring.coreos.com + kind: PrometheusRule diff --git a/bootstrap/plex.yaml b/bootstrap/plex.yaml new file mode 100644 index 0000000..aa162a4 --- /dev/null +++ b/bootstrap/plex.yaml @@ -0,0 +1,26 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: plex + namespace: argocd +spec: + project: media + sources: + - repoURL: https://brunner.ninja/charts + chart: plex + targetRevision: 1.43.4-10903-e5521bd8c + helm: + releaseName: plex + valueFiles: + - $values/apps/plex/values.yaml + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + destination: + server: https://kubernetes.default.svc + namespace: plex + syncPolicy: + automated: + enabled: false + prune: false + selfHeal: false