From 30c089502e127d40b76f45448cf18a7788e3eb11 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Tue, 16 Dec 2025 19:27:59 +0100 Subject: [PATCH] Updated servarr.yaml --- servarr-system/servarr.yaml | 203 ++++++++++++++++++++++++------------ 1 file changed, 136 insertions(+), 67 deletions(-) diff --git a/servarr-system/servarr.yaml b/servarr-system/servarr.yaml index 40facd1..9a703fb 100644 --- a/servarr-system/servarr.yaml +++ b/servarr-system/servarr.yaml @@ -10,20 +10,6 @@ metadata: --- apiVersion: v1 kind: ConfigMap -metadata: - name: postgres-config - namespace: servarr-system - labels: - app.kubernetes.io/name: preparr - app.kubernetes.io/instance: preparr - app: postgres -data: - POSTGRES_USER: "postgres" - POSTGRES_PASSWORD: "postgres123" - POSTGRES_DB: "servarr" ---- -apiVersion: v1 -kind: ConfigMap metadata: name: prowlarr-config namespace: servarr-system @@ -59,7 +45,7 @@ metadata: app: radarr data: radarr-config.json: | - {"apiKey":"4fac7d10eca54269424d835a2edc15d2","downloadClients":[{"configContract":"QBittorrentSettings","enable":true,"fields":[{"name":"host","value":"192.168.0.202"},{"name":"port","value":8080},{"name":"username","value":"admin"},{"name":"password","value":"doodooP4ssWD001!"},{"name":"category","value":"movies"}],"implementation":"QBittorrent","implementationName":"qBittorrent","name":"qBittorrent","priority":1}],"prowlarrSync":true,"qualityProfiles":[{"cutoff":1080,"items":[{"allowed":true,"quality":{"id":1,"name":"Bluray-1080p"}},{"allowed":true,"quality":{"id":2,"name":"WEBDL-1080p"}}],"name":"HD - 1080p","upgradeAllowed":true}],"rootFolders":[{"accessible":true,"path":"/movies"}]} + {"apiKey":"4fac7d10eca54269424d835a2edc15d2","downloadClients":[{"configContract":"QBittorrentSettings","enable":true,"fields":[{"name":"host","value":"__QBIT_HOST__"},{"name":"port","value":8080},{"name":"username","value":"__QBIT_USER__"},{"name":"password","value":"__QBIT_PASS__"},{"name":"category","value":"movies"}],"implementation":"QBittorrent","implementationName":"qBittorrent","name":"qBittorrent","priority":1}],"prowlarrSync":true,"qualityProfiles":[{"cutoff":1080,"items":[{"allowed":true,"quality":{"id":1,"name":"Bluray-1080p"}},{"allowed":true,"quality":{"id":2,"name":"WEBDL-1080p"}}],"name":"HD - 1080p","upgradeAllowed":true}],"rootFolders":[{"accessible":true,"path":"/movies"}]} --- apiVersion: v1 kind: ConfigMap @@ -72,7 +58,7 @@ metadata: app: sonarr data: sonarr-config.json: | - {"apiKey":"2bac5d00dca43258313c734821a15c4c","downloadClients":[{"configContract":"QBittorrentSettings","enable":true,"fields":[{"name":"host","value":"192.168.0.202"},{"name":"port","value":8080},{"name":"username","value":"admin"},{"name":"password","value":"doodooP4ssWD001!"},{"name":"category","value":"tv"}],"implementation":"QBittorrent","implementationName":"qBittorrent","name":"qBittorrent","priority":1}],"prowlarrSync":true,"qualityProfiles":[{"cutoff":1080,"items":[{"allowed":true,"quality":{"id":1,"name":"HDTV-1080p"}},{"allowed":true,"quality":{"id":2,"name":"WEBDL-1080p"}}],"name":"HD - 1080p","upgradeAllowed":true}],"rootFolders":[{"accessible":true,"path":"/tv"}]} + {"apiKey":"2bac5d00dca43258313c734821a15c4c","downloadClients":[{"configContract":"QBittorrentSettings","enable":true,"fields":[{"name":"host","value":"__QBIT_HOST__"},{"name":"port","value":8080},{"name":"username","value":"__QBIT_USER__"},{"name":"password","value":"__QBIT_PASS__"},{"name":"category","value":"tv"}],"implementation":"QBittorrent","implementationName":"qBittorrent","name":"qBittorrent","priority":1}],"prowlarrSync":true,"qualityProfiles":[{"cutoff":1080,"items":[{"allowed":true,"quality":{"id":1,"name":"HDTV-1080p"}},{"allowed":true,"quality":{"id":2,"name":"WEBDL-1080p"}}],"name":"HD - 1080p","upgradeAllowed":true}],"rootFolders":[{"accessible":true,"path":"/tv"}]} --- apiVersion: v1 kind: PersistentVolumeClaim @@ -89,7 +75,7 @@ spec: storageClassName: longhorn resources: requests: - storage: 1Gi + storage: 3Gi --- apiVersion: v1 kind: PersistentVolumeClaim @@ -210,7 +196,8 @@ metadata: annotations: external-dns.alpha.kubernetes.io/hostname: qbittorrent.home spec: - type: ClusterIP + type: LoadBalancer + loadBalancerIP: 192.168.0.202 selector: app: qbittorrent ports: @@ -286,8 +273,8 @@ spec: - name: postgres image: "postgres:16-alpine" envFrom: - - configMapRef: - name: postgres-config + - secretRef: + name: postgres-credentials ports: - containerPort: 5432 resources: @@ -345,30 +332,39 @@ spec: - name: POSTGRES_PORT value: "5432" - name: POSTGRES_USER - value: "postgres" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: preparr-postgresql - key: password + name: postgres-credentials + key: POSTGRES_PASSWORD - name: POSTGRES_DB - value: "servarr" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_DB - name: SERVARR_URL - value: "http://192.168.0.201:9696" + value: "http://prowlarr.servarr-system.svc:9696" - name: SERVARR_TYPE value: "prowlarr" - name: SERVARR_ADMIN_USER valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: username - name: SERVARR_ADMIN_PASSWORD valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: password - name: SERVARR_API_KEY - value: "c04914c6bfad445a3edc23e5edbca4d1" + valueFrom: + secretKeyRef: + name: servarr-api-keys + key: prowlarr - name: CONFIG_PATH value: "/tmp/config/prowlarr-config.json" command: ["/bin/sh", "-c", "if [ ! -f /config/prowlarr-config.json ]; then cp /tmp/config/prowlarr-config.json /config/prowlarr-config.json; fi; bun run dist/index.js --init"] @@ -401,11 +397,8 @@ spec: mountPath: /config readinessProbe: httpGet: - path: /api/v1/system/status + path: /ping port: 9696 - httpHeaders: - - name: X-Api-Key - value: "c04914c6bfad445a3edc23e5edbca4d1" initialDelaySeconds: 60 periodSeconds: 10 volumes: @@ -451,32 +444,44 @@ spec: - name: POSTGRES_PORT value: "5432" - name: POSTGRES_USER - value: "postgres" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: preparr-postgresql - key: password + name: postgres-credentials + key: POSTGRES_PASSWORD - name: POSTGRES_DB - value: "servarr" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_DB - name: SERVARR_TYPE value: "qbittorrent" - name: QBITTORRENT_USER - value: "admin" + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-username - name: QBITTORRENT_PASSWORD - value: "doodooP4ssWD001!" + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-password - name: SERVARR_ADMIN_USER valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: username - name: SERVARR_ADMIN_PASSWORD valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: password - name: QBITTORRENT_URL - value: "http://192.168.0.199:8080" + value: "http://qbittorrent.servarr-system.svc:8080" - name: CONFIG_PATH value: "/config/qbittorrent-config.json" - name: QBITTORRENT_DOWNLOADS_PATH @@ -574,33 +579,68 @@ spec: - name: POSTGRES_PORT value: "5432" - name: POSTGRES_USER - value: "postgres" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: preparr-postgresql - key: password + name: postgres-credentials + key: POSTGRES_PASSWORD - name: POSTGRES_DB - value: "servarr" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_DB - name: SERVARR_URL - value: "http://192.168.0.203:7878" + value: "http://radarr.servarr-system.svc:7878" - name: SERVARR_TYPE value: "radarr" - name: SERVARR_ADMIN_USER valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: username - name: SERVARR_ADMIN_PASSWORD valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: password - name: SERVARR_API_KEY - value: "4fac7d10eca54269424d835a2edc15d2" + valueFrom: + secretKeyRef: + name: servarr-api-keys + key: radarr - name: CONFIG_PATH value: "/config/radarr-config.json" - command: ["/bin/sh", "-c", "if [ ! -f /config/radarr-config.json ]; then cp /tmp/config/radarr-config.json /config/radarr-config.json; fi; bun run dist/index.js --init"] + - name: QBIT_HOST + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-host + - name: QBIT_USER + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-username + - name: QBIT_PASS + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-password + command: + - /bin/sh + - -c + - | + if [ ! -f /config/radarr-config.json ]; then + # Copy template and inject secrets + sed -e "s|__QBIT_HOST__|$QBIT_HOST|g" \ + -e "s|__QBIT_USER__|$QBIT_USER|g" \ + -e "s|__QBIT_PASS__|$QBIT_PASS|g" \ + /tmp/config/radarr-config.json > /config/radarr-config.json + fi + bun run dist/index.js --init volumeMounts: - name: radarr-config-volume mountPath: /config @@ -634,11 +674,8 @@ spec: name: 2hdd readinessProbe: httpGet: - path: /api/v3/system/status + path: /ping port: 7878 - httpHeaders: - - name: X-Api-Key - value: "4fac7d10eca54269424d835a2edc15d2" initialDelaySeconds: 60 periodSeconds: 10 volumes: @@ -688,33 +725,68 @@ spec: - name: POSTGRES_PORT value: "5432" - name: POSTGRES_USER - value: "postgres" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: preparr-postgresql - key: password + name: postgres-credentials + key: POSTGRES_PASSWORD - name: POSTGRES_DB - value: "servarr" + valueFrom: + secretKeyRef: + name: postgres-credentials + key: POSTGRES_DB - name: SERVARR_URL - value: "http://192.168.0.202:8989" + value: "http://sonarr.servarr-system.svc:8989" - name: SERVARR_TYPE value: "sonarr" - name: SERVARR_ADMIN_USER valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: username - name: SERVARR_ADMIN_PASSWORD valueFrom: secretKeyRef: - name: default-user + name: servarr-credentials key: password - name: SERVARR_API_KEY - value: "2bac5d00dca43258313c734821a15c4c" + valueFrom: + secretKeyRef: + name: servarr-api-keys + key: sonarr - name: CONFIG_PATH value: "/config/sonarr-config.json" - command: ["/bin/sh", "-c", "if [ ! -f /config/sonarr-config.json ]; then cp /tmp/config/sonarr-config.json /config/sonarr-config.json; fi; bun run dist/index.js --init"] + - name: QBIT_HOST + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-host + - name: QBIT_USER + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-username + - name: QBIT_PASS + valueFrom: + secretKeyRef: + name: download-client-credentials + key: qbittorrent-password + command: + - /bin/sh + - -c + - | + if [ ! -f /config/sonarr-config.json ]; then + # Copy template and inject secrets + sed -e "s|__QBIT_HOST__|$QBIT_HOST|g" \ + -e "s|__QBIT_USER__|$QBIT_USER|g" \ + -e "s|__QBIT_PASS__|$QBIT_PASS|g" \ + /tmp/config/sonarr-config.json > /config/sonarr-config.json + fi + bun run dist/index.js --init volumeMounts: - name: sonarr-config-volume mountPath: /config @@ -751,11 +823,8 @@ spec: name: 1hdd readinessProbe: httpGet: - path: /api/v3/system/status + path: /ping port: 8989 - httpHeaders: - - name: X-Api-Key - value: "2bac5d00dca43258313c734821a15c4c" initialDelaySeconds: 60 periodSeconds: 10 volumes: