add radarr anime
This commit is contained in:
		
							
								
								
									
										31
									
								
								clusters/cl01tl/applications/radarr-anime/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								clusters/cl01tl/applications/radarr-anime/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| apiVersion: v2 | ||||
| name: radarr-anime | ||||
| version: 1.0.0 | ||||
| description: Radarr v5 Anime | ||||
| keywords: | ||||
|   - radarr | ||||
|   - servarr | ||||
|   - movies | ||||
|   - anime | ||||
|   - metrics | ||||
| home: https://wiki.alexlebens.dev/doc/radarr-T6nPLajWDP | ||||
| sources: | ||||
|   - https://github.com/Radarr/Radarr | ||||
|   - https://github.com/cloudnative-pg/cloudnative-pg | ||||
|   - https://github.com/linuxserver/docker-radarr | ||||
|   - https://github.com/onedr0p/exportarr/pkgs/container/exportarr | ||||
|   - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template | ||||
|   - https://github.com/alexlebens/helm-charts/charts/postgres-cluster | ||||
| maintainers: | ||||
|   - name: alexlebens | ||||
| dependencies: | ||||
|   - name: app-template | ||||
|     alias: radarr-anime | ||||
|     repository: https://bjw-s.github.io/helm-charts/ | ||||
|     version: 3.7.1 | ||||
|   - name: postgres-cluster | ||||
|     alias: postgres-17-cluster | ||||
|     version: 4.2.0 | ||||
|     repository: http://alexlebens.github.io/helm-charts | ||||
| icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/radarr.png | ||||
| appVersion: 5.16.3 | ||||
| @@ -0,0 +1,89 @@ | ||||
| # apiVersion: external-secrets.io/v1beta1 | ||||
| # kind: ExternalSecret | ||||
| # metadata: | ||||
| #   name: radarr-anime-config-backup-secret | ||||
| #   namespace: {{ .Release.Namespace }} | ||||
| #   labels: | ||||
| #     app.kubernetes.io/name: radarr-anime-config-backup-secret | ||||
| #     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
| #     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
| #     app.kubernetes.io/component: backup | ||||
| #     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| # spec: | ||||
| #   secretStoreRef: | ||||
| #     kind: ClusterSecretStore | ||||
| #     name: vault | ||||
| #   target: | ||||
| #     template: | ||||
| #       mergePolicy: Merge | ||||
| #       engineVersion: v2 | ||||
| #       data: | ||||
| #         RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/radarr5-anime/radarr5-anime-config" | ||||
| #   data: | ||||
| #     - secretKey: BUCKET_ENDPOINT | ||||
| #       remoteRef: | ||||
| #         conversionStrategy: Default | ||||
| #         decodingStrategy: None | ||||
| #         key: /cl01tl/volsync/restic/config | ||||
| #         metadataPolicy: None | ||||
| #         property: S3_BUCKET_ENDPOINT | ||||
| #     - secretKey: RESTIC_PASSWORD | ||||
| #       remoteRef: | ||||
| #         conversionStrategy: Default | ||||
| #         decodingStrategy: None | ||||
| #         key: /cl01tl/volsync/restic/config | ||||
| #         metadataPolicy: None | ||||
| #         property: RESTIC_PASSWORD | ||||
| #     - secretKey: AWS_DEFAULT_REGION | ||||
| #       remoteRef: | ||||
| #         conversionStrategy: Default | ||||
| #         decodingStrategy: None | ||||
| #         key: /cl01tl/volsync/restic/config | ||||
| #         metadataPolicy: None | ||||
| #         property: AWS_DEFAULT_REGION | ||||
| #     - secretKey: AWS_ACCESS_KEY_ID | ||||
| #       remoteRef: | ||||
| #         conversionStrategy: Default | ||||
| #         decodingStrategy: None | ||||
| #         key: /digital-ocean/home-infra/volsync-backups | ||||
| #         metadataPolicy: None | ||||
| #         property: access_key | ||||
| #     - secretKey: AWS_SECRET_ACCESS_KEY | ||||
| #       remoteRef: | ||||
| #         conversionStrategy: Default | ||||
| #         decodingStrategy: None | ||||
| #         key: /digital-ocean/home-infra/volsync-backups | ||||
| #         metadataPolicy: None | ||||
| #         property: secret_key | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: radarr-anime-postgresql-17-cluster-backup-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: radarr-anime-postgresql-17-cluster-backup-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: database | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: ACCESS_KEY_ID | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /digital-ocean/home-infra/postgres-backups | ||||
|         metadataPolicy: None | ||||
|         property: access | ||||
|     - secretKey: ACCESS_SECRET_KEY | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /digital-ocean/home-infra/postgres-backups | ||||
|         metadataPolicy: None | ||||
|         property: secret | ||||
| @@ -0,0 +1,30 @@ | ||||
| apiVersion: gateway.networking.k8s.io/v1 | ||||
| kind: HTTPRoute | ||||
| metadata: | ||||
|   name: http-route-radarr-anime | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: http-route-radarr-anime | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   parentRefs: | ||||
|     - group: gateway.networking.k8s.io | ||||
|       kind: Gateway | ||||
|       name: traefik-gateway | ||||
|       namespace: traefik | ||||
|   hostnames: | ||||
|     - radarr-anime.alexlebens.net | ||||
|   rules: | ||||
|     - matches: | ||||
|       - path: | ||||
|           type: PathPrefix | ||||
|           value: / | ||||
|       backendRefs: | ||||
|         - group: '' | ||||
|           kind: Service | ||||
|           name: radarr-anime | ||||
|           port: 80 | ||||
|           weight: 100 | ||||
| @@ -0,0 +1,19 @@ | ||||
| apiVersion: v1 | ||||
| kind: PersistentVolumeClaim | ||||
| metadata: | ||||
|   name: radarr-anime-nfs-storage | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: radarr-anime-nfs-storage | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: storage | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   volumeName: radarr-anime-nfs-storage | ||||
|   storageClassName: nfs-client | ||||
|   accessModes: | ||||
|     - ReadWriteMany | ||||
|   resources: | ||||
|     requests: | ||||
|       storage: 1Gi | ||||
| @@ -0,0 +1,25 @@ | ||||
| apiVersion: v1 | ||||
| kind: PersistentVolume | ||||
| metadata: | ||||
|   name: radarr-anime-nfs-storage | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: {{ .Release.Name }} | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: storage | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   persistentVolumeReclaimPolicy: Retain | ||||
|   storageClassName: nfs-client | ||||
|   capacity: | ||||
|     storage: 1Gi | ||||
|   accessModes: | ||||
|     - ReadWriteMany | ||||
|   nfs: | ||||
|     path: /volume2/Storage | ||||
|     server: synologybond.alexlebens.net | ||||
|   mountOptions: | ||||
|     - vers=4 | ||||
|     - minorversion=1 | ||||
|     - noac | ||||
| @@ -0,0 +1,34 @@ | ||||
| apiVersion: monitoring.coreos.com/v1 | ||||
| kind: PrometheusRule | ||||
| metadata: | ||||
|   name: radarr-anime | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: radarr-anime | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: metrics | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   groups: | ||||
|     - name: radarr-anime | ||||
|       rules: | ||||
|         - alert: ExportarrAbsent | ||||
|           annotations: | ||||
|             description: Radarr Anime Exportarr has disappeared from Prometheus | ||||
|               service discovery. | ||||
|             summary: Exportarr is down. | ||||
|           expr: | | ||||
|             absent(up{job=~".*radarr_anime.*"} == 1) | ||||
|           for: 5m | ||||
|           labels: | ||||
|             severity: critical | ||||
|         - alert: RadarrAnimeDown | ||||
|           annotations: | ||||
|             description: Radarr Anime service is down. | ||||
|             summary: Radarr Anime is down. | ||||
|           expr: | | ||||
|             radarr_anime_system_status{job=~".*radarr_anime.*"} == 0 | ||||
|           for: 5m | ||||
|           labels: | ||||
|             severity: critical | ||||
| @@ -0,0 +1,30 @@ | ||||
| # apiVersion: volsync.backube/v1alpha1 | ||||
| # kind: ReplicationSource | ||||
| # metadata: | ||||
| #   name: radarr-anime-config-backup-source | ||||
| #   namespace: {{ .Release.Namespace }} | ||||
| #   labels: | ||||
| #     app.kubernetes.io/name: radarr-anime-config-backup-source | ||||
| #     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
| #     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
| #     app.kubernetes.io/component: backup | ||||
| #     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| # spec: | ||||
| #   sourcePVC: radarr-anime-config | ||||
| #   trigger: | ||||
| #     schedule: 0 0 */3 * * | ||||
| #   restic: | ||||
| #     pruneIntervalDays: 14 | ||||
| #     repository: radarr-anime-config-backup-secret | ||||
| #     retain: | ||||
| #       hourly: 1 | ||||
| #       daily: 1 | ||||
| #       weekly: 1 | ||||
| #       monthly: 2 | ||||
| #       yearly: 4 | ||||
| #     moverSecurityContext: | ||||
| #       fsGroup: 1000 | ||||
| #       fsGroupChangePolicy: OnRootMismatch | ||||
| #     copyMethod: Snapshot | ||||
| #     storageClassName: ceph-block | ||||
| #     volumeSnapshotClassName: ceph-blockpool-snapshot | ||||
| @@ -0,0 +1,21 @@ | ||||
| apiVersion: monitoring.coreos.com/v1 | ||||
| kind: ServiceMonitor | ||||
| metadata: | ||||
|   name: radarr-anime | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: radarr-anime | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: metrics | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app.kubernetes.io/name: radarr-anime | ||||
|       app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|   endpoints: | ||||
|     - port: metrics | ||||
|       interval: 3m | ||||
|       scrapeTimeout: 1m | ||||
|       path: /metrics | ||||
							
								
								
									
										130
									
								
								clusters/cl01tl/applications/radarr-anime/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								clusters/cl01tl/applications/radarr-anime/values.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,130 @@ | ||||
| radarr-anime: | ||||
|   controllers: | ||||
|     main: | ||||
|       type: deployment | ||||
|       replicas: 1 | ||||
|       strategy: Recreate | ||||
|       revisionHistoryLimit: 3 | ||||
|       pod: | ||||
|         securityContext: | ||||
|           fsGroup: 1000 | ||||
|           fsGroupChangePolicy: OnRootMismatch | ||||
|       containers: | ||||
|         main: | ||||
|           image: | ||||
|             repository: ghcr.io/linuxserver/radarr | ||||
|             tag: 5.19.3@sha256:0a8020afc5e3dcad1413ba125a980729a2b16ff0d88d108b3e1779111ef1c896 | ||||
|             pullPolicy: IfNotPresent | ||||
|           env: | ||||
|             - name: TZ | ||||
|               value: US/Central | ||||
|             - name: PUID | ||||
|               value: 1000 | ||||
|             - name: PGID | ||||
|               value: 1000 | ||||
|           probes: | ||||
|             liveness: | ||||
|               enabled: false | ||||
|               custom: true | ||||
|               spec: | ||||
|                 exec: | ||||
|                   command: | ||||
|                   - /usr/bin/env | ||||
|                   - bash | ||||
|                   - -c | ||||
|                   - curl --fail localhost:7878/api/v1/system/status?apiKey=`IFS=\> && while | ||||
|                     read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` | ||||
|                 failureThreshold: 5 | ||||
|                 initialDelaySeconds: 60 | ||||
|                 periodSeconds: 10 | ||||
|                 successThreshold: 1 | ||||
|                 timeoutSeconds: 10 | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 10m | ||||
|               memory: 256Mi | ||||
|         metrics: | ||||
|           image: | ||||
|             repository: ghcr.io/onedr0p/exportarr | ||||
|             tag: v2.0.1 | ||||
|             pullPolicy: IfNotPresent | ||||
|           args: ["radarr"] | ||||
|           env: | ||||
|             - name: URL | ||||
|               value: http://localhost | ||||
|             - name: CONFIG | ||||
|               value: /config/config.xml | ||||
|             - name: PORT | ||||
|               value: 9793 | ||||
|             - name: ENABLE_ADDITIONAL_METRICS | ||||
|               value: false | ||||
|             - name: ENABLE_UNKNOWN_QUEUE_ITEMS | ||||
|               value: false | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 100m | ||||
|               memory: 256Mi | ||||
|   serviceAccount: | ||||
|     create: true | ||||
|   service: | ||||
|     main: | ||||
|       controller: main | ||||
|       ports: | ||||
|         http: | ||||
|           port: 80 | ||||
|           targetPort: 7878 | ||||
|           protocol: HTTP | ||||
|         metrics: | ||||
|           port: 9793 | ||||
|           targetPort: 9793 | ||||
|           protocol: TCP | ||||
|   persistence: | ||||
|     config: | ||||
|       storageClass: ceph-block | ||||
|       accessMode: ReadWriteOnce | ||||
|       size: 20Gi | ||||
|       retain: true | ||||
|       advancedMounts: | ||||
|         main: | ||||
|           main: | ||||
|             - path: /config | ||||
|               readOnly: false | ||||
|           metrics: | ||||
|             - path: /config | ||||
|               readOnly: true | ||||
|     media: | ||||
|       existingClaim: radarr-anime-nfs-storage | ||||
|       advancedMounts: | ||||
|         main: | ||||
|           main: | ||||
|             - path: /mnt/store | ||||
|               readOnly: false | ||||
| postgres-17-cluster: | ||||
|   nameOverride: radarr5-postgresql-17 | ||||
|   mode: recovery | ||||
|   cluster: | ||||
|     walStorage: | ||||
|       storageClass: local-path | ||||
|     storage: | ||||
|       storageClass: local-path | ||||
|     monitoring: | ||||
|       enabled: true | ||||
|   bootstrap: | ||||
|     initdb: | ||||
|       database: app | ||||
|       owner: app | ||||
|       postInitSQL: | ||||
|         - CREATE DATABASE "radarr-main" OWNER "app"; | ||||
|         - CREATE DATABASE "radarr-log" OWNER "app"; | ||||
|   recovery: | ||||
|     endpointURL: https://nyc3.digitaloceanspaces.com | ||||
|     destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/radarr5-anime/radarr5-anime-postgresql-17-cluster | ||||
|     endpointCredentials: radarr-anime-postgresql-17-cluster-backup-secret | ||||
|     recoveryIndex: 2 | ||||
|   backup: | ||||
|     enabled: false | ||||
|     endpointURL: https://nyc3.digitaloceanspaces.com | ||||
|     destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/radarr5-anime/radarr5-anime-postgresql-17-cluster | ||||
|     endpointCredentials: radarr-anime-postgresql-17-cluster-backup-secret | ||||
|     backupIndex: 3 | ||||
|     retentionPolicy: "7d" | ||||
		Reference in New Issue
	
	Block a user