From 4e392ea351e4ce3723abe2882b5632e93119c826 Mon Sep 17 00:00:00 2001 From: Jory Irving Date: Sun, 22 Dec 2024 12:30:36 -0700 Subject: [PATCH] feat(overseerr): migrate to jellyseerr --- .../crunchy-postgres/cluster/cluster.yaml | 4 +++ .../downloads/dashbrr/app/externalsecret.yaml | 4 +-- .../media/jellyseerr/app/externalsecret.yaml | 34 +++++++++++++++++++ .../app/helmrelease.yaml | 34 ++++++++++++------- .../app/kustomization.yaml | 2 ++ .../main/apps/media/jellyseerr/app/pvc.yaml | 11 ++++++ .../media/{overseerr => jellyseerr}/ks.yaml | 4 +-- kubernetes/main/apps/media/kustomization.yaml | 2 +- kubernetes/main/apps/media/wizarr/ks.yaml | 2 +- .../homepage/app/externalsecret.yaml | 6 ++-- 10 files changed, 82 insertions(+), 21 deletions(-) create mode 100644 kubernetes/main/apps/media/jellyseerr/app/externalsecret.yaml rename kubernetes/main/apps/media/{overseerr => jellyseerr}/app/helmrelease.yaml (68%) rename kubernetes/main/apps/media/{overseerr => jellyseerr}/app/kustomization.yaml (86%) create mode 100644 kubernetes/main/apps/media/jellyseerr/app/pvc.yaml rename kubernetes/main/apps/media/{overseerr => jellyseerr}/ks.yaml (88%) diff --git a/kubernetes/main/apps/database/crunchy-postgres/cluster/cluster.yaml b/kubernetes/main/apps/database/crunchy-postgres/cluster/cluster.yaml index 02edf4ac7..662800c55 100644 --- a/kubernetes/main/apps/database/crunchy-postgres/cluster/cluster.yaml +++ b/kubernetes/main/apps/database/crunchy-postgres/cluster/cluster.yaml @@ -70,6 +70,10 @@ spec: databases: ["dashbrr"] password: type: AlphaNumeric + - name: "jellyseerr" + databases: ["jellyseerr"] + password: + type: AlphaNumeric - name: "lubelog" databases: ["lubelog"] password: diff --git a/kubernetes/main/apps/downloads/dashbrr/app/externalsecret.yaml b/kubernetes/main/apps/downloads/dashbrr/app/externalsecret.yaml index dae8a198b..f63e17d39 100644 --- a/kubernetes/main/apps/downloads/dashbrr/app/externalsecret.yaml +++ b/kubernetes/main/apps/downloads/dashbrr/app/externalsecret.yaml @@ -14,7 +14,7 @@ spec: DASHBRR_RADARR_API_KEY: "{{ .RADARR_API_KEY }}" DASHBRR_SONARR_API_KEY: "{{ .SONARR_API_KEY }}" DASHBRR_PROWLARR_API_KEY: "{{ .PROWLARR_API_KEY }}" - DASHBRR_OVERSEERR_API_KEY: "{{ .OVERSEERR_API_KEY }}" + DASHBRR_JELLYSEERR_API_KEY: "{{ .JELLYSEERR_API_KEY }}" DASHBRR_MAINTAINERR_API_KEY: "{{ .MAINTAINERR_API_KEY }}" DASHBRR_PLEX_API_KEY: "{{ .PLEX_API_KEY }}" # OIDC @@ -43,7 +43,7 @@ spec: key: prowlarr sourceRef: *onepass - extract: - key: overseerr + key: jellyseerr sourceRef: *onepass - extract: key: maintainerr diff --git a/kubernetes/main/apps/media/jellyseerr/app/externalsecret.yaml b/kubernetes/main/apps/media/jellyseerr/app/externalsecret.yaml new file mode 100644 index 000000000..7f94c0298 --- /dev/null +++ b/kubernetes/main/apps/media/jellyseerr/app/externalsecret.yaml @@ -0,0 +1,34 @@ +--- +# yaml-language-server: $schema=https://kube-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: &name jellyseerr-secret +spec: + target: + name: *name + template: + engineVersion: v2 + data: + # App + JELLYSEERR_API_KEY: "{{ .JELLYSEERR_API_KEY }}" + # Database + DB_TYPE: "postgres" + DB_HOST: '{{ index . "pgbouncer-host" }}' + DB_PORT: '{{ index . "pgbouncer-port" }}' + DB_USER: '{{ .user }}' + DB_PASS: '{{ .password }}' + =: '{{ .dbname }}' + dataFrom: + - extract: + key: jellyseerr + sourceRef: + storeRef: + kind: ClusterSecretStore + name: onepassword-connect + - extract: + key: postgres-pguser-jellyseerr + sourceRef: + storeRef: + kind: ClusterSecretStore + name: crunchy-pgo-secrets diff --git a/kubernetes/main/apps/media/overseerr/app/helmrelease.yaml b/kubernetes/main/apps/media/jellyseerr/app/helmrelease.yaml similarity index 68% rename from kubernetes/main/apps/media/overseerr/app/helmrelease.yaml rename to kubernetes/main/apps/media/jellyseerr/app/helmrelease.yaml index a8b2eb4c7..cf6ddf292 100644 --- a/kubernetes/main/apps/media/overseerr/app/helmrelease.yaml +++ b/kubernetes/main/apps/media/jellyseerr/app/helmrelease.yaml @@ -3,7 +3,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: - name: &app overseerr + name: &app jellyseerr spec: interval: 30m chart: @@ -27,22 +27,22 @@ spec: namespace: rook-ceph values: controllers: - overseerr: + jellyseerr: annotations: reloader.stakater.com/auto: "true" containers: app: image: - repository: ghcr.io/sct/overseerr - tag: 1.33.2 + repository: docker.io/fallenbagel/jellyseerr + tag: 2.1.0@sha256:af5563771964282e5bfb6a4f30b05c75c8d30661a920f0399086f575217d0573 env: TZ: ${TIMEZONE} resources: requests: - cpu: 15m - memory: 350M + cpu: 10m + memory: 350Mi limits: - memory: 600M + memory: 600Mi defaultPodOptions: securityContext: runAsNonRoot: true @@ -63,12 +63,12 @@ spec: annotations: gethomepage.dev/enabled: "true" gethomepage.dev/group: Video - gethomepage.dev/name: Overseerr - gethomepage.dev/icon: overseerr.png + gethomepage.dev/name: jellyseerr + gethomepage.dev/icon: jellyseerr.png gethomepage.dev/description: Media Request Management - gethomepage.dev/widget.type: overseerr - gethomepage.dev/widget.url: http://overseerr.media:5055 - gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_OVERSEERR_TOKEN}}` }}" + gethomepage.dev/widget.type: jellyseerr + gethomepage.dev/widget.url: http://jellyseerr.media:5055 + gethomepage.dev/widget.key: "{{ `{{HOMEPAGE_VAR_JELLYSEERR_TOKEN}}` }}" hosts: - host: requests.${SECRET_DOMAIN} paths: @@ -81,3 +81,13 @@ spec: existingClaim: *app globalMounts: - path: /app/config + cache: + existingClaim: jellyseerr-cache + globalMounts: + - path: /app/config/cache + logs: + type: emptyDir + globalMounts: + - path: /app/config/logs + tmp: + type: emptyDir diff --git a/kubernetes/main/apps/media/overseerr/app/kustomization.yaml b/kubernetes/main/apps/media/jellyseerr/app/kustomization.yaml similarity index 86% rename from kubernetes/main/apps/media/overseerr/app/kustomization.yaml rename to kubernetes/main/apps/media/jellyseerr/app/kustomization.yaml index 707d89332..b361ab74a 100644 --- a/kubernetes/main/apps/media/overseerr/app/kustomization.yaml +++ b/kubernetes/main/apps/media/jellyseerr/app/kustomization.yaml @@ -3,6 +3,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - ./externalsecret.yaml - ./helmrelease.yaml + - ./pvc.yaml - ../../../../../shared/templates/gatus/external - ../../../../../shared/templates/volsync diff --git a/kubernetes/main/apps/media/jellyseerr/app/pvc.yaml b/kubernetes/main/apps/media/jellyseerr/app/pvc.yaml new file mode 100644 index 000000000..8067ac4ae --- /dev/null +++ b/kubernetes/main/apps/media/jellyseerr/app/pvc.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: jellyseerr-cache +spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 15Gi + storageClassName: ceph-block diff --git a/kubernetes/main/apps/media/overseerr/ks.yaml b/kubernetes/main/apps/media/jellyseerr/ks.yaml similarity index 88% rename from kubernetes/main/apps/media/overseerr/ks.yaml rename to kubernetes/main/apps/media/jellyseerr/ks.yaml index 7e18e9a60..6b911ca42 100644 --- a/kubernetes/main/apps/media/overseerr/ks.yaml +++ b/kubernetes/main/apps/media/jellyseerr/ks.yaml @@ -3,7 +3,7 @@ apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: - name: &app overseerr + name: &app jellyseerr namespace: flux-system spec: targetNamespace: media @@ -12,7 +12,7 @@ spec: app.kubernetes.io/name: *app dependsOn: - name: volsync - path: ./kubernetes/main/apps/media/overseerr/app + path: ./kubernetes/main/apps/media/jellyseerr/app prune: true sourceRef: kind: GitRepository diff --git a/kubernetes/main/apps/media/kustomization.yaml b/kubernetes/main/apps/media/kustomization.yaml index e40401c1e..2c54e7947 100644 --- a/kubernetes/main/apps/media/kustomization.yaml +++ b/kubernetes/main/apps/media/kustomization.yaml @@ -7,11 +7,11 @@ resources: - ./namespace.yaml # Flux-Kustomizations - ./ersatztv/ks.yaml + - ./jellyseerr/ks.yaml - ./kavita/ks.yaml - ./komga/ks.yaml # - ./kyoo/ks.yaml - ./maintainerr/ks.yaml - - ./overseerr/ks.yaml - ./plex/ks.yaml - ./tautulli/ks.yaml - ./wizarr/ks.yaml diff --git a/kubernetes/main/apps/media/wizarr/ks.yaml b/kubernetes/main/apps/media/wizarr/ks.yaml index b2ca4453a..95f2f64be 100644 --- a/kubernetes/main/apps/media/wizarr/ks.yaml +++ b/kubernetes/main/apps/media/wizarr/ks.yaml @@ -12,7 +12,7 @@ spec: app.kubernetes.io/name: *app dependsOn: - name: plex - - name: overseerr + - name: jellyseerr - name: volsync path: ./kubernetes/main/apps/media/wizarr/app prune: true diff --git a/kubernetes/main/apps/self-hosted/homepage/app/externalsecret.yaml b/kubernetes/main/apps/self-hosted/homepage/app/externalsecret.yaml index 592db0cf6..41ccacfa3 100644 --- a/kubernetes/main/apps/self-hosted/homepage/app/externalsecret.yaml +++ b/kubernetes/main/apps/self-hosted/homepage/app/externalsecret.yaml @@ -37,7 +37,7 @@ spec: HOMEPAGE_VAR_SABNZBD_TOKEN: "{{ .SABNZBD_API_KEY }}" HOMEPAGE_VAR_SONARR_TOKEN: "{{ .SONARR_API_KEY }}" ## Media - HOMEPAGE_VAR_OVERSEERR_TOKEN: "{{ .OVERSEERR_API_KEY }}" + HOMEPAGE_VAR_JELLYSEERR_TOKEN: "{{ .JELLYSEERR_API_KEY }}" HOMEPAGE_VAR_PLEX_TOKEN: "{{ .PLEX_API_KEY }}" HOMEPAGE_VAR_TAUTULLI_TOKEN: "{{ .TAUTULLI_API_KEY }}" HOMEPAGE_VAR_KAVITA_USERNAME: "{{ .KAVITA_USERNAME }}" @@ -64,6 +64,8 @@ spec: key: healthcheck - extract: key: home-assistant + - extract: + key: jellyseerr - extract: key: kapowarr - extract: @@ -74,8 +76,6 @@ spec: key: lubelog - extract: key: mylar - - extract: - key: overseerr - extract: key: paperless - extract: