Skip to content

Commit 8308cbe

Browse files
committedFeb 18, 2025
add reloader HelmRelease and update apps
1 parent 5c3cf6c commit 8308cbe

23 files changed

+516
-283
lines changed
 

‎kubernetes/apps/production/arr/qbitty/kustomization.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@ kind: Kustomization
33
resources:
44
- deployment.yaml
55
- service.yaml
6-
- ingress.yaml
7-
- qbitty-secrets.yaml
6+
- ingress.yaml

‎kubernetes/apps/production/arr/radarr/helmrelease.yaml

+5-3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ spec:
3131
radarr:
3232
enabled: true
3333
type: statefulset
34+
annotations:
35+
reloader.stakater.com/auto: "true"
3436

3537
replicas: 1
3638

@@ -76,10 +78,10 @@ spec:
7678

7779
resources:
7880
requests:
79-
cpu: 50m
80-
memory: 200Mi
81+
cpu: 25m
82+
memory: 100Mi
8183
limits:
82-
memory: 400Mi
84+
memory: 250Mi
8385

8486
service:
8587
app:

‎kubernetes/apps/production/arr/recyclarr/configmap.yaml

-27
This file was deleted.

‎kubernetes/apps/production/arr/recyclarr/deployment.yaml

-44
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
apiVersion: helm.toolkit.fluxcd.io/v2
2+
kind: HelmRelease
3+
metadata:
4+
name: &app recyclarr
5+
spec:
6+
interval: 15m
7+
chart:
8+
spec:
9+
chart: app-template
10+
version: 3.7.1
11+
interval: 30m
12+
sourceRef:
13+
kind: HelmRepository
14+
name: bjw-s
15+
namespace: flux-system
16+
17+
install:
18+
remediation:
19+
retries: 3
20+
21+
upgrade:
22+
remediation:
23+
retries: 3
24+
25+
values:
26+
global:
27+
fullnameOverride: *app
28+
namespace: arr
29+
30+
controllers:
31+
recyclarr:
32+
enabled: true
33+
type: cronjob
34+
annotations:
35+
reloader.stakater.com/auto: "true"
36+
cronjob:
37+
concurrencyPolicy: Forbid
38+
schedule: "0 2 * * 1"
39+
startingDeadlineSeconds: 30
40+
successfulJobsHistory: 1
41+
failedJobsHistory: 1
42+
backoffLimit: 1
43+
44+
pod:
45+
securityContext:
46+
runAsUser: &context 65534
47+
runAsGroup: *context
48+
fsGroup: *context
49+
fsGroupChangePolicy: "OnRootMismatch"
50+
51+
containers:
52+
app:
53+
image:
54+
repository: ghcr.io/recyclarr/recyclarr
55+
tag: 7.4.1
56+
command: ["/app/recyclarr/recyclarr"]
57+
args: ["sync"]
58+
env:
59+
TZ: ${TZ}
60+
SONARR_API_KEY:
61+
valueFrom:
62+
secretKeyRef:
63+
name: recyclarr-secrets
64+
key: SONARR_API_KEY
65+
RADARR_API_KEY:
66+
valueFrom:
67+
secretKeyRef:
68+
name: recyclarr-secrets
69+
key: RADARR_API_KEY
70+
securityContext:
71+
allowPrivilegeEscalation: false
72+
capabilities:
73+
drop:
74+
- ALL
75+
resources:
76+
requests:
77+
cpu: 5m
78+
memory: 36Mi
79+
limits:
80+
memory: 200Mi
81+
82+
persistence:
83+
config-file:
84+
type: configMap
85+
name: recyclarr-config
86+
globalMounts:
87+
- path: /config/recyclarr.yml
88+
subPath: recyclarr.yml
89+
readOnly: true
90+
config:
91+
type: emptyDir
92+
globalMounts:
93+
- path: /config
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33
resources:
4-
- deployment.yaml
5-
- configmap.yaml
4+
- helmrelease.yaml
5+
configMapGenerator:
6+
- name: recyclarr-cm
7+
files:
8+
- recyclarr.yml=./recyclarr.yml
9+
generatorOptions:
10+
disableNameSuffixHash: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
sonarr:
2+
series:
3+
base_url: https://sonarr.local.mafyuh.dev
4+
api_key: !secret SONARR_API_KEY
5+
6+
delete_old_custom_formats: true
7+
replace_existing_custom_formats: true
8+
9+
include:
10+
- template: sonarr-v4-custom-formats-web-1080p
11+
- template: sonarr-v4-quality-profile-web-1080p
12+
13+
# quality_profiles:
14+
# - name: WEB-DL (1080p)
15+
# reset_unmatched_scores:
16+
# enabled: true
17+
# upgrade:
18+
# allowed: true
19+
# until_quality: WEBDL-1080p
20+
# until_score: 10000
21+
# min_format_score: 1
22+
# qualities:
23+
# - WEBDL-1080p
24+
# - WEBRip-1080p
25+
# - HDTV-1080p
26+
27+
custom_formats:
28+
- trash_ids:
29+
- 32b367365729d530ca1c124a0b180c64 # Bad Dual Groups
30+
- ed38b889b31be83fda192888e2286d83 # BR-DISK
31+
- e1a997ddb54e3ecbfe06341ad323c458 # Obfuscated
32+
- dc98083864ea246d05a42df0d05f81cc # x265 (720/1080p)
33+
- 1b3994c551cbb92a2c781af061f4ab44 # Scene
34+
assign_scores_to:
35+
- name: WEB-DL (1080p)
36+
score: -10000
37+
38+
radarr:
39+
radarr_main:
40+
base_url: https://radarr.local.mafyuh.dev
41+
api_key: !secret RADARR_API_KEY
42+
43+
# Custom Format Configuration
44+
delete_old_custom_formats: true
45+
replace_existing_custom_formats: true
46+
47+
include:
48+
- template: radarr-quality-definition-movie
49+
- template: radarr-quality-profile-hd-bluray-web
50+
- template: radarr-custom-formats-hd-bluray-web
51+
- template: radarr-quality-definition-movie
52+
- template: radarr-quality-profile-uhd-bluray-web
53+
- template: radarr-custom-formats-uhd-bluray-web
54+
55+
# quality_profiles:
56+
# - name: HD Bluray + WEB
57+
# min_format_score: 0
58+
# reset_unmatched_scores:
59+
# enabled: true
60+
# qualities:
61+
# - WEBDL-1080p
62+
# - Bluray-1080p
63+
# - name: UHD Bluray + WEB
64+
# reset_unmatched_scores:
65+
# enabled: true
66+
# qualities:
67+
# - WEBDL-2160p
68+
# - Bluray-2160p
69+
# - WEBDL-1080p # Ensuring `until_quality` exists in the list
70+
71+
custom_formats:
72+
- trash_ids:
73+
- b6832f586342ef70d9c128d40c07b872 # Bad Dual Groups
74+
- 90cedc1fea7ea5d11298bebd3d1d3223 # EVO (no WEBDL)
75+
- ae9b7c9ebde1f3bd336a8cbd1ec4c5e5 # No-RlsGroup
76+
- 7357cf5161efbf8c4d5d0c30b4815ee2 # Obfuscated
77+
- 5c44f52a8714fdd79bb4d98e2673be1f # Retags
78+
- f537cf427b64c38c8e36298f657e4828 # Scene
79+
assign_scores_to:
80+
- name: HD Bluray + WEB
81+
- trash_ids:
82+
- eecf3a857724171f968a66cb5719e152 # IMAX
83+
- 9f6cbff8cfe4ebbc1bde14c7b7bec0de # IMAX ENHANCED
84+
- c53085ddbd027d9624b320627748612f # DV HDR10+
85+
- e23edd2482476e595fb990b12e7c609c # DV HDR10
86+
- 58d6a88f13e2db7f5059c41047876f00 # DV
87+
- 55d53828b9d81cbe20b02efd00aa0efd # DV HLG
88+
- a3e19f8f627608af0211acd02bf89735 # DV SDR
89+
- b974a6cd08c1066250f1f177d7aa1225 # HDR10+
90+
- dfb86d5941bc9075d6af23b09c2aeecd # HDR10
91+
- e61e28db95d22bedcadf030b8f156d96 # HDR
92+
- 2a4d9069cc1fe3242ff9bdaebed239bb # HDR Undefined
93+
- 08d6d8834ad9ec87b1dc7ec8148e7a1f # PQ
94+
- 9364dd386c9b4a1100dde8264690add7 # HLG
95+
assign_scores_to:
96+
- name: UHD Bluray + WEB

‎kubernetes/apps/production/arr/sabnzbd/deployment.yaml

-68
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
apiVersion: helm.toolkit.fluxcd.io/v2
2+
kind: HelmRelease
3+
metadata:
4+
name: &app sabnzbd
5+
namespace: arr
6+
spec:
7+
interval: 15m
8+
chart:
9+
spec:
10+
chart: app-template
11+
version: 3.7.1
12+
interval: 30m
13+
sourceRef:
14+
kind: HelmRepository
15+
name: bjw-s
16+
namespace: flux-system
17+
18+
install:
19+
remediation:
20+
retries: 3
21+
upgrade:
22+
remediation:
23+
retries: 3
24+
25+
values:
26+
global:
27+
fullnameOverride: *app
28+
namespace: arr
29+
30+
controllers:
31+
sabnzbd:
32+
enabled: true
33+
type: statefulset
34+
annotations:
35+
reloader.stakater.com/auto: "true"
36+
37+
replicas: 1
38+
39+
statefulset:
40+
volumeClaimTemplates:
41+
- name: config
42+
accessMode: ReadWriteMany
43+
size: 500Mi
44+
storageClass: longhorn
45+
globalMounts:
46+
- path: /config
47+
48+
pod:
49+
securityContext:
50+
runAsUser: 65534
51+
runAsGroup: &group 65534
52+
fsGroup: *group
53+
fsGroupChangePolicy: "OnRootMismatch"
54+
55+
containers:
56+
app:
57+
image:
58+
repository: ghcr.io/onedr0p/sabnzbd
59+
tag: 4.4.1
60+
pullPolicy: IfNotPresent
61+
env:
62+
TZ: "${TZ}"
63+
SABNZBD__PORT: &port 8080
64+
65+
probes:
66+
liveness:
67+
enabled: false
68+
69+
securityContext:
70+
allowPrivilegeEscalation: false
71+
capabilities:
72+
drop:
73+
- ALL
74+
75+
resources:
76+
requests:
77+
cpu: 20m
78+
memory: 200Mi
79+
limits:
80+
memory: 4000Mi
81+
82+
service:
83+
app:
84+
primary: true
85+
controller: sabnzbd
86+
ports:
87+
http:
88+
port: *port
89+
90+
ingress:
91+
internal:
92+
enabled: true
93+
className: nginx
94+
hosts:
95+
- host: "sabnzbd.${LOCAL_DOMAIN}"
96+
paths:
97+
- path: /
98+
pathType: Prefix
99+
service:
100+
identifier: app
101+
port: http
102+
tls:
103+
- hosts:
104+
- "sabnzbd.${LOCAL_DOMAIN}"
105+
secretName: local-mafyuh-dev-production-tls
106+
107+
persistence:
108+
data:
109+
enabled: true
110+
type: nfs
111+
server: "${NAS_IP}"
112+
path: /mnt/thePool/thePoolShare
113+
globalMounts:
114+
- path: /data

‎kubernetes/apps/production/arr/sabnzbd/ingress.yaml

-22
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33
resources:
4-
- deployment.yaml
5-
- service.yaml
6-
- ingress.yaml
4+
- helmrelease.yaml

‎kubernetes/apps/production/arr/sabnzbd/service.yaml

-13
This file was deleted.

‎kubernetes/apps/production/arr/sonarr/deployment.yaml

-59
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
apiVersion: helm.toolkit.fluxcd.io/v2
2+
kind: HelmRelease
3+
metadata:
4+
name: &app sonarr
5+
namespace: arr
6+
spec:
7+
interval: 15m
8+
chart:
9+
spec:
10+
chart: app-template
11+
version: 3.7.1
12+
interval: 30m
13+
sourceRef:
14+
kind: HelmRepository
15+
name: bjw-s
16+
namespace: flux-system
17+
18+
install:
19+
remediation:
20+
retries: 3
21+
upgrade:
22+
remediation:
23+
retries: 3
24+
25+
values:
26+
global:
27+
fullnameOverride: *app
28+
namespace: arr
29+
30+
controllers:
31+
sonarr:
32+
enabled: true
33+
type: statefulset
34+
annotations:
35+
reloader.stakater.com/auto: "true"
36+
37+
replicas: 1
38+
39+
statefulset:
40+
volumeClaimTemplates:
41+
- name: config
42+
accessMode: ReadWriteMany
43+
size: 3Gi
44+
storageClass: longhorn
45+
globalMounts:
46+
- path: /config
47+
48+
pod:
49+
securityContext:
50+
runAsUser: 65534
51+
runAsGroup: &group 65534
52+
fsGroup: *group
53+
fsGroupChangePolicy: "OnRootMismatch"
54+
55+
containers:
56+
app:
57+
image:
58+
repository: ghcr.io/onedr0p/sonarr
59+
tag: 5.18.4.9674
60+
pullPolicy: IfNotPresent
61+
env:
62+
TZ: "${TZ}"
63+
SONARR__INSTANCE_NAME: *app
64+
SONARR__PORT: &port 8989
65+
SONARR__APPLICATION_URL: "https://sonarr.${LOCAL_DOMAIN}"
66+
SONARR__THEME: dark
67+
SONARR__LOG_LEVEL: info
68+
69+
probes:
70+
liveness:
71+
enabled: false
72+
73+
securityContext:
74+
allowPrivilegeEscalation: false
75+
capabilities:
76+
drop:
77+
- ALL
78+
79+
resources:
80+
requests:
81+
cpu: 50m
82+
memory: 200Mi
83+
limits:
84+
memory: 400Mi
85+
86+
service:
87+
app:
88+
primary: true
89+
controller: sonarr
90+
ports:
91+
http:
92+
port: *port
93+
94+
ingress:
95+
internal:
96+
enabled: true
97+
className: nginx
98+
hosts:
99+
- host: "sonarr.${LOCAL_DOMAIN}"
100+
paths:
101+
- path: /
102+
pathType: Prefix
103+
service:
104+
identifier: app
105+
port: http
106+
tls:
107+
- hosts:
108+
- "sonarr.${LOCAL_DOMAIN}"
109+
secretName: local-mafyuh-dev-production-tls
110+
111+
persistence:
112+
data:
113+
enabled: true
114+
type: nfs
115+
server: "${NAS_IP}"
116+
path: /mnt/thePool/thePoolShare
117+
globalMounts:
118+
- path: /data

‎kubernetes/apps/production/arr/sonarr/ingress.yaml

-22
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33
resources:
4-
- deployment.yaml
5-
- service.yaml
6-
- ingress.yaml
4+
- helmrelease.yaml

‎kubernetes/apps/production/arr/sonarr/service.yaml

-13
This file was deleted.

‎kubernetes/apps/production/kustomization.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ resources:
66
- cert-manager/
77
- longhorn/
88
- nginx/
9-
- reflector/
9+
- reflector/
10+
- reloader/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: helm.toolkit.fluxcd.io/v2
2+
kind: HelmRelease
3+
metadata:
4+
name: &app reloader
5+
spec:
6+
interval: 15m
7+
chart:
8+
spec:
9+
chart: reloader
10+
version: 1.2.1
11+
interval: 30m
12+
sourceRef:
13+
kind: HelmRepository
14+
name: stakater
15+
namespace: flux-system
16+
17+
install:
18+
remediation:
19+
retries: 3
20+
upgrade:
21+
remediation:
22+
retries: 3
23+
24+
values:
25+
fullnameOverride: *app
26+
27+
resources:
28+
requests:
29+
cpu: 15m
30+
memory: 64M
31+
limits:
32+
cpu: 15m
33+
memory: 64M
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
resources:
4+
- helmrelease.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
apiVersion: source.toolkit.fluxcd.io/v1
3+
kind: HelmRepository
4+
metadata:
5+
name: stakater
6+
namespace: flux-system
7+
spec:
8+
interval: 30m
9+
url: https://stakater.github.io/stakater-charts
10+
timeout: 3m

‎kubernetes/secrets/kustomization.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ kind: Kustomization
33
resources:
44
- cluster-config.yaml
55
- qbitty-secrets.yaml
6-
- cluster-secrets.yaml
6+
- cluster-secrets.yaml
7+
- recyclarr.yaml

‎kubernetes/secrets/recyclarr.yaml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: recyclarr-secrets
5+
namespace: arr
6+
type: Opaque
7+
stringData:
8+
RADARR_APT_KEY: ENC[AES256_GCM,data:ExNCoY5kWoUbZBxNnmCrFFfOa0bx2BD/koqX0EskCMM=,iv:BiphcBweetjC9NZgHN9RGois1r3HAiqvTotZbjs9ViE=,tag:EIXUZhcJXPJNdVsJGklAoQ==,type:str]
9+
SONARR_API_KEY: ENC[AES256_GCM,data:0BwoubBRAUJCF65SsWmQcpMfT1KYZI5AmUjk,iv:59lCryBCqgQM44XAqDo/70hJGB4+TO5PUfsxhyXz9s4=,tag:bdMJLRR2D5IeyXdc8hmlCg==,type:str]
10+
sops:
11+
kms: []
12+
gcp_kms: []
13+
azure_kv: []
14+
hc_vault: []
15+
age:
16+
- recipient: age18z6wevr8ze5azvq7nfty3l29s7887l8n5mefr64avhlthtr4uvnqw90nfs
17+
enc: |
18+
-----BEGIN AGE ENCRYPTED FILE-----
19+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLVWtGNHBNcCtIUDd0ZHNS
20+
K2lNMlFSMzlVRU1BUTNyWVdCTDh2UmY4VUJzCkk4Y1ZDcy8vTG84eTh6eXg0eWpO
21+
SFZqRjFrdjl6dWpJbTg3UnhNZ2JTOGsKLS0tIGRoT1cyK0phNXVwZEJ0M3VDcEpj
22+
KzdOczVjakovQlE1TkF4VUJORk5IdWsKx12AioJfcpmzCAbI+RwrJW1607YYsQbf
23+
N8EKX70kyhdlwyCMDwr7B0+eFAWsJAjsR+2Z91peXCxlfeVXu28eFQ==
24+
-----END AGE ENCRYPTED FILE-----
25+
lastmodified: "2025-02-18T04:52:45Z"
26+
mac: ENC[AES256_GCM,data:kdkPp/yJTRdGE++jjDti0ZV18UvQPvHC2Zmuovdhax0PwltcNL4xNXWK+3ZNuy5k2uRcfM6tRf6JEID/0WRedJCUZ3X0VhF1QJB/1/5ZgVvvpq0CVdufCOOQtMl0Y+2zAE7RCug4DI9PpB1Ud5V7uc/RTem2D4p2ebXr4SMJz7w=,iv:lbQsBStxyd1jzdeI7dESDrpgZibymUYw69yTGL9aiqc=,tag:2giVCBtX2x8kjo0aTG6TEQ==,type:str]
27+
pgp: []
28+
encrypted_regex: ^(data|stringData)$
29+
version: 3.9.4

0 commit comments

Comments
 (0)
Please sign in to comment.