sonarr: controllers: main: type: deployment replicas: 1 strategy: Recreate revisionHistoryLimit: 3 pod: securityContext: fsGroup: 1000 fsGroupChangePolicy: OnRootMismatch containers: main: image: repository: ghcr.io/linuxserver/sonarr tag: 4.0.16@sha256:8b9f2138ec50fc9e521960868f79d2ad0d529bc610aef19031ea8ff80b54c5e0 pullPolicy: IfNotPresent env: - name: TZ value: US/Central - name: PUID value: 1000 - name: PGID value: 1000 resources: requests: cpu: 100m memory: 256Mi metrics: image: repository: ghcr.io/onedr0p/exportarr tag: v2.3.0 pullPolicy: IfNotPresent args: ["sonarr"] env: - name: URL value: http://localhost - name: CONFIG value: /config/config.xml - name: PORT value: 9794 - name: ENABLE_ADDITIONAL_METRICS value: false - name: ENABLE_UNKNOWN_QUEUE_ITEMS value: false resources: requests: cpu: 10m memory: 256Mi service: main: controller: main ports: http: port: 80 targetPort: 8989 protocol: HTTP metrics: port: 9794 targetPort: 9794 protocol: TCP serviceMonitor: main: selector: matchLabels: app.kubernetes.io/name: sonarr app.kubernetes.io/instance: sonarr serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}' endpoints: - port: metrics interval: 3m scrapeTimeout: 1m path: /metrics route: main: kind: HTTPRoute parentRefs: - group: gateway.networking.k8s.io kind: Gateway name: traefik-gateway namespace: traefik hostnames: - sonarr.alexlebens.net rules: - backendRefs: - group: '' kind: Service name: sonarr port: 80 weight: 100 matches: - path: type: PathPrefix value: / persistence: config: forceRename: sonarr-config storageClass: ceph-block accessMode: ReadWriteOnce size: 20Gi retain: true advancedMounts: main: main: - path: /config readOnly: false metrics: - path: /config readOnly: true media: existingClaim: sonarr-nfs-storage advancedMounts: main: main: - path: /mnt/store readOnly: false postgres-18-cluster: mode: recovery cluster: initdb: postInitSQL: - CREATE DATABASE IF NOT EXISTS "sonarr-main" OWNER "app"; - CREATE DATABASE IF NOT EXISTS "sonarr-log" OWNER "app"; recovery: method: objectStore objectStore: index: 1 backup: objectStore: - name: garage-local index: 1 destinationBucket: postgres-backups externalSecretCredentialPath: /garage/home-infra/postgres-backups isWALArchiver: true # - name: garage-remote # index: 1 # destinationBucket: postgres-backups # externalSecretCredentialPath: /garage/home-infra/postgres-backups # retentionPolicy: "90d" # data: # compression: bzip2 # - name: external # index: 1 # endpointURL: https://nyc3.digitaloceanspaces.com # destinationBucket: postgres-backups-ce540ddf106d186bbddca68a # externalSecretCredentialPath: /garage/home-infra/postgres-backups # isWALArchiver: false scheduledBackups: - name: live-backup suspend: false immediate: true schedule: "0 0 0 * * *" backupName: garage-local # - name: weekly-backup # suspend: true # immediate: true # schedule: "0 0 4 * * SAT" # backupName: garage-remote # - name: daily-backup # suspend: true # immediate: true # schedule: "0 0 0 * * *" # backupName: external volsync-target-config: pvcTarget: sonarr-config moverSecurityContext: runAsUser: 1000 runAsGroup: 1000 fsGroup: 1000 fsGroupChangePolicy: OnRootMismatch