diff --git a/kubernetes/apps/database/crunchy-postgres-operator/cluster/cluster.yaml b/kubernetes/apps/database/crunchy-postgres-operator/cluster/cluster.yaml index 8b3acea63..47d06d723 100644 --- a/kubernetes/apps/database/crunchy-postgres-operator/cluster/cluster.yaml +++ b/kubernetes/apps/database/crunchy-postgres-operator/cluster/cluster.yaml @@ -106,6 +106,11 @@ spec: - radarr_main - radarr_log password: *password + - name: radarr-archive + databases: + - radarr_archive_main + - radarr_archive_log + password: *password - name: sonarr databases: - sonarr_main diff --git a/kubernetes/apps/default/kustomization.yaml b/kubernetes/apps/default/kustomization.yaml index b94174700..187a0f870 100644 --- a/kubernetes/apps/default/kustomization.yaml +++ b/kubernetes/apps/default/kustomization.yaml @@ -37,6 +37,7 @@ resources: - ./prowlarr/ks.yaml - ./qbittorrent/ks.yaml - ./radarr/ks.yaml + - ./radarr-archive/ks.yaml - ./readeck/ks.yaml - ./recyclarr/ks.yaml - ./redlib/ks.yaml diff --git a/kubernetes/apps/default/radarr-archive/app/externalsecret.yaml b/kubernetes/apps/default/radarr-archive/app/externalsecret.yaml new file mode 100644 index 000000000..0e5f0c284 --- /dev/null +++ b/kubernetes/apps/default/radarr-archive/app/externalsecret.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: radarr-archive-db +spec: + secretStoreRef: + kind: ClusterSecretStore + name: crunchy-pgo-secrets + target: + name: radarr-archive-db-secret + template: + engineVersion: v2 + data: + RADARR__POSTGRES__MAINDB: '{{ index . "dbname" }}' + RADARR__POSTGRES__LOGDB: radarr_archive_log + RADARR__POSTGRES__HOST: '{{ index . "host" }}' + RADARR__POSTGRES__USER: '{{ index . "user" }}' + RADARR__POSTGRES__PASSWORD: '{{ index . "password" }}' + RADARR__POSTGRES__PORT: '{{ index . "port" }}' + dataFrom: + - extract: + key: postgres-pguser-radarr-archive diff --git a/kubernetes/apps/default/radarr-archive/app/helmrelease.yaml b/kubernetes/apps/default/radarr-archive/app/helmrelease.yaml new file mode 100644 index 000000000..145414e83 --- /dev/null +++ b/kubernetes/apps/default/radarr-archive/app/helmrelease.yaml @@ -0,0 +1,116 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app radarr-archive +spec: + interval: 1h + chartRef: + kind: OCIRepository + name: app-template + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + values: + defaultPodOptions: + securityContext: + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + fsGroupChangePolicy: OnRootMismatch + controllers: + radarr-archive: + annotations: + configmap.reloader.stakater.com/reload: radarr-pushover + reloader.stakater.com/auto: "true" + secret.reloader.stakater.com/reload: radarr-archive-db-secret + containers: + app: + image: + repository: ghcr.io/home-operations/radarr + tag: 5.27.3.10153@sha256:1bf822eaf3d944dc994656c3a712a89df0d88f5f46731af4fccc90c5e0333167 + env: + TZ: "${TIMEZONE}" + RADARR__APP__INSTANCENAME: Radarr-archive + RADARR__APP__THEME: dark + RADARR__AUTH__METHOD: External + RADARR__AUTH__REQUIRED: DisabledForLocalAddresses + RADARR__LOG__DBENABLED: "False" + RADARR__LOG__LEVEL: info + RADARR__SERVER__PORT: &port 8080 + PUSHOVER_APP_URL: &host "{{ .Release.Name }}.${SECRET_EXTERNAL_DOMAIN}" + RADARR__UPDATE__BRANCH: develop + PUSHOVER_DEBUG: "false" + PUSHOVER_PRIORITY: "0" + envFrom: + - secretRef: + name: radarr-secret + - secretRef: + name: radarr-archive-db-secret + resources: + requests: + cpu: 500m + memory: 500Mi + limits: + memory: 2000Mi + service: + app: + controller: *app + ports: + http: + port: *port + ingress: + app: + enabled: true + className: internal + annotations: + nginx.ingress.kubernetes.io/auth-method: GET + nginx.ingress.kubernetes.io/auth-url: http://authelia.default.svc.cluster.local.:8888/api/verify + nginx.ingress.kubernetes.io/auth-signin: https://auth.${SECRET_EXTERNAL_DOMAIN}?rm=$request_method + nginx.ingress.kubernetes.io/auth-response-headers: Remote-User,Remote-Name,Remote-Groups,Remote-Email + nginx.ingress.kubernetes.io/auth-snippet: proxy_set_header X-Forwarded-Method $request_method; + hosts: + - host: *host + paths: + - path: / + service: + identifier: app + port: http + tls: + - hosts: + - *host + persistence: + config: + enabled: true + existingClaim: *app + globalMounts: + - path: /config + downloads: + enabled: true + type: nfs + server: 192.168.9.10 + path: /var/mnt/vol1/downloads + globalMounts: + - path: /mnt/storage/downloads + video: + enabled: true + type: nfs + server: 192.168.9.10 + path: /var/mnt/vol1/video + globalMounts: + - path: /mnt/storage/video + scripts: + enabled: true + type: configMap + name: radarr-pushover + defaultMode: 0775 # trunk-ignore(yamllint/octal-values) + globalMounts: + - path: /scripts/pushover-notify.sh + subPath: pushover-notify.sh + readOnly: true diff --git a/kubernetes/apps/default/radarr-archive/app/kustomization.yaml b/kubernetes/apps/default/radarr-archive/app/kustomization.yaml new file mode 100644 index 000000000..ac5ae96e1 --- /dev/null +++ b/kubernetes/apps/default/radarr-archive/app/kustomization.yaml @@ -0,0 +1,8 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: default +resources: + - ./externalsecret.yaml + - ./helmrelease.yaml diff --git a/kubernetes/apps/default/radarr-archive/ks.yaml b/kubernetes/apps/default/radarr-archive/ks.yaml new file mode 100644 index 000000000..d52466ed1 --- /dev/null +++ b/kubernetes/apps/default/radarr-archive/ks.yaml @@ -0,0 +1,38 @@ +--- +# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app radarr-archive + namespace: &namespace default +spec: + commonMetadata: + labels: + app.kubernetes.io/name: *app + dependsOn: + - name: crunchy-postgres-operator-cluster + namespace: database + - name: external-secrets-stores + namespace: external-secrets + - name: rook-ceph-cluster + namespace: rook-ceph + - name: volsync + namespace: volsync + components: + - ../../../../components/gatus/guarded + - ../../../../components/volsync + interval: 1h + path: ./kubernetes/apps/default/radarr-archive/app + postBuild: + substitute: + APP: *app + VOLSYNC_CAPACITY: 20Gi + prune: true + retryInterval: 2m + sourceRef: + kind: GitRepository + name: flux-system + namespace: flux-system + targetNamespace: *namespace + timeout: 5m + wait: false diff --git a/kubernetes/apps/default/recyclarr/app/config/recyclarr.yml b/kubernetes/apps/default/recyclarr/app/config/recyclarr.yml index 88e492e22..ecffeb470 100644 --- a/kubernetes/apps/default/recyclarr/app/config/recyclarr.yml +++ b/kubernetes/apps/default/recyclarr/app/config/recyclarr.yml @@ -10,14 +10,10 @@ sonarr: include: - template: sonarr-quality-definition-series - # - template: sonarr-v4-quality-profile-bluray-web-1080p-french-multi-vf - - template: sonarr-v4-quality-profile-web-1080p-alternative - # - template: sonarr-v4-custom-formats-bluray-web-1080p-french-multi-vf + - template: sonarr-v4-quality-profile-web-1080p - template: sonarr-v4-custom-formats-web-1080p - quality_profiles: - name: WEB-1080p - custom_formats: - trash_ids: - 32b367365729d530ca1c124a0b180c64 # Bad Dual Groups @@ -37,15 +33,12 @@ radarr: replace_existing_custom_formats: true quality_profiles: - - name: SQP-1 (2160p) + - name: SQP-1 (1080p) include: - template: radarr-quality-definition-sqp-streaming - - template: radarr-quality-definition-sqp-uhd - - template: radarr-quality-profile-sqp-1-2160p-default - - template: radarr-quality-profile-sqp-5 - - template: radarr-custom-formats-sqp-1-2160p - - template: radarr-custom-formats-sqp-5 + - template: radarr-quality-profile-sqp-1-1080p + - template: radarr-custom-formats-sqp-1-1080p custom_formats: - trash_ids: @@ -55,4 +48,29 @@ radarr: - 5c44f52a8714fdd79bb4d98e2673be1f # Retags - f537cf427b64c38c8e36298f657e4828 # Scene assign_scores_to: - - name: SQP-1 (2160p) + - name: SQP-1 (1080p) + + radarr-archive: + base_url: http://radarr-archive.default.svc.cluster.local:8080 + api_key: !env_var RADARR_API_KEY + + delete_old_custom_formats: true + replace_existing_custom_formats: true + + quality_profiles: + - name: SQP-2 + + include: + - template: radarr-quality-definition-sqp-uhd + - template: radarr-quality-profile-sqp-2 + - template: radarr-custom-formats-sqp-2 + + custom_formats: + - trash_ids: + - b6832f586342ef70d9c128d40c07b872 # Bad Dual Groups + - ae9b7c9ebde1f3bd336a8cbd1ec4c5e5 # No-RlsGroup + - 7357cf5161efbf8c4d5d0c30b4815ee2 # Obfuscated + - 5c44f52a8714fdd79bb4d98e2673be1f # Retags + - f537cf427b64c38c8e36298f657e4828 # Scene + assign_scores_to: + - name: SQP-2 \ No newline at end of file