Skip to content

Commit 3424abe

Browse files
authored
feat(prowlarr): #31 Added prowlarr and extra lb annotations
feat(prowlarr): #31 Added prowlarr and extra lb annotations
2 parents 4281296 + f96afd9 commit 3424abe

File tree

10 files changed

+473
-153
lines changed

10 files changed

+473
-153
lines changed

README.md

Lines changed: 183 additions & 131 deletions
Large diffs are not rendered by default.

helm-charts/k8s-mediaserver/templates/jackett-resources.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ apiVersion: v1
142142
kind: Service
143143
metadata:
144144
name: jackett-lb
145+
annotations:
146+
{{- include .Values.jackett.service.extraLBService.annotations . | nindent 4 }}
145147
labels:
146148
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
147149
spec:

helm-charts/k8s-mediaserver/templates/plex-resources.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ apiVersion: v1
108108
kind: Service
109109
metadata:
110110
name: plex-lb
111+
annotations:
112+
{{- include .Values.plex.service.extraLBService.annotations . | nindent 4 }}
111113
labels:
112114
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
113115
spec:
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
{{ if .Values.prowlarr.enabled }}
2+
---
3+
### CONFIGMAPS
4+
## INIT-CONTAINER
5+
apiVersion: v1
6+
data:
7+
config.xml: |
8+
<Config>
9+
<UrlBase>{{ .Values.prowlarr.ingress.path }}</UrlBase>
10+
</Config>
11+
init-prowlarr.sh: |
12+
#!/bin/bash
13+
echo "### Initializing config ###"
14+
if [ ! -f /prowlarr-config/config.xml ]; then
15+
cp -n /init-prowlarr/config.xml /prowlarr-config/config.xml
16+
echo "### No configuration found, intialized with default settings ###"
17+
fi
18+
kind: ConfigMap
19+
metadata:
20+
name: init-prowlarr-cm
21+
---
22+
## APPLICATION
23+
apiVersion: v1
24+
kind: ConfigMap
25+
metadata:
26+
name: prowlarr-config
27+
data:
28+
PGID: "{{ .Values.general.pgid }}"
29+
PUID: "{{ .Values.general.puid }}"
30+
---
31+
### DEPLOYMENT
32+
apiVersion: apps/v1
33+
kind: Deployment
34+
metadata:
35+
name: prowlarr
36+
labels:
37+
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
38+
spec:
39+
replicas: 1
40+
selector:
41+
matchLabels:
42+
{{- include "k8s-mediaserver.selectorLabels" . | nindent 6 }}
43+
template:
44+
metadata:
45+
labels:
46+
{{- include "k8s-mediaserver.selectorLabels" . | nindent 8 }}
47+
app: prowlarr
48+
spec:
49+
initContainers:
50+
- name: config-prowlarr
51+
image: docker.io/ubuntu:groovy
52+
command: ["/init-prowlarr/init-prowlarr.sh"]
53+
volumeMounts:
54+
- mountPath: /init-prowlarr
55+
name: init-files-prowlarr
56+
{{- if .Values.prowlarr.volume }}
57+
- name: {{ .Values.prowlarr.volume.name }}
58+
mountPath: /prowlarr-config
59+
{{- else }}
60+
- name: mediaserver-volume
61+
mountPath: /prowlarr-config
62+
subPath: "{{ .Values.general.storage.subPaths.config }}/prowlarr"
63+
{{- end }}
64+
securityContext:
65+
runAsUser: {{ .Values.general.puid }}
66+
runAsGroup: {{ .Values.general.pgid }}
67+
containers:
68+
- name: {{ .Chart.Name }}
69+
envFrom:
70+
- configMapRef:
71+
name: prowlarr-config
72+
image: "{{ .Values.prowlarr.container.image }}:{{ .Values.prowlarr.container.tag | default .Values.general.image_tag }}"
73+
imagePullPolicy: Always
74+
readinessProbe:
75+
tcpSocket:
76+
port: {{ .Values.prowlarr.container.port }}
77+
initialDelaySeconds: 10
78+
periodSeconds: 20
79+
ports:
80+
- name: prowlarr-port
81+
containerPort: {{ .Values.prowlarr.container.port }}
82+
protocol: TCP
83+
volumeMounts:
84+
{{- if .Values.prowlarr.volume }}
85+
- name: {{ .Values.prowlarr.volume.name }}
86+
mountPath: /config
87+
{{- else }}
88+
- name: mediaserver-volume
89+
mountPath: "/config"
90+
subPath: "{{ .Values.general.storage.subPaths.config }}/prowlarr"
91+
{{- end }}
92+
{{- with .Values.prowlarr.resources }}
93+
resources:
94+
{{- toYaml . | nindent 12 }}
95+
{{- end }}
96+
volumes:
97+
{{ if not .Values.general.storage.customVolume }}
98+
- name: mediaserver-volume
99+
persistentVolumeClaim:
100+
claimName: {{ .Values.general.storage.pvcName }}
101+
{{ else }}
102+
- name: mediaserver-volume
103+
{{- toYaml .Values.general.storage.volumes | nindent 10 }}
104+
{{ end }}
105+
{{- if .Values.prowlarr.volume }}
106+
- name: {{ .Values.prowlarr.volume.name }}
107+
persistentVolumeClaim:
108+
claimName: {{ .Values.prowlarr.volume.name }}
109+
{{- end }}
110+
- name: init-files-prowlarr
111+
configMap:
112+
defaultMode: 493
113+
name: init-prowlarr-cm
114+
{{- with .Values.general.nodeSelector }}
115+
nodeSelector:
116+
{{- toYaml . | nindent 8 }}
117+
{{- end }}
118+
---
119+
### SERVICES
120+
apiVersion: v1
121+
kind: Service
122+
metadata:
123+
name: prowlarr
124+
labels:
125+
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
126+
spec:
127+
type: {{ .Values.prowlarr.service.type }}
128+
ports:
129+
- port: {{ .Values.prowlarr.service.port }}
130+
targetPort: {{ .Values.prowlarr.container.port }}
131+
protocol: TCP
132+
{{ if eq .Values.prowlarr.service.type "NodePort" }}
133+
nodePort: {{ .Values.prowlarr.service.nodePort }}
134+
{{ end }}
135+
name: prowlarr-port
136+
selector:
137+
app: prowlarr
138+
139+
---
140+
{{ if .Values.prowlarr.service.extraLBService }}
141+
apiVersion: v1
142+
kind: Service
143+
metadata:
144+
name: prowlarr-lb
145+
annotations:
146+
{{- include .Values.prowlarr.service.extraLBService.annotations . | nindent 4 }}
147+
labels:
148+
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
149+
spec:
150+
type: LoadBalancer
151+
ports:
152+
- port: {{ .Values.prowlarr.service.port }}
153+
targetPort: {{ .Values.prowlarr.container.port }}
154+
protocol: TCP
155+
name: prowlarr-port
156+
selector:
157+
app: prowlarr
158+
{{ end }}
159+
---
160+
### INGRESS ###
161+
{{ if .Values.prowlarr.ingress.enabled }}
162+
apiVersion: networking.k8s.io/v1
163+
kind: Ingress
164+
metadata:
165+
name: prowlarr
166+
labels:
167+
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
168+
{{- with .Values.prowlarr.ingress.annotations }}
169+
annotations:
170+
{{- toYaml . | nindent 4 }}
171+
{{- end }}
172+
spec:
173+
{{ if .Values.prowlarr.ingress.tls.enabled }}
174+
tls:
175+
- hosts:
176+
- {{ .Values.general.ingress_host | quote }}
177+
secretName: {{ .Values.prowlarr.ingress.tls.secretName }}
178+
{{ end }}
179+
ingressClassName: {{ .Values.general.ingress.ingressClassName }}
180+
rules:
181+
- host: {{ .Values.general.ingress_host | quote }}
182+
http:
183+
paths:
184+
- path: {{ .Values.prowlarr.ingress.path }}
185+
pathType: Prefix
186+
backend:
187+
service:
188+
name: prowlarr
189+
port:
190+
number: {{ .Values.prowlarr.service.port }}
191+
{{ end }}
192+
{{ end }}

helm-charts/k8s-mediaserver/templates/radarr-resources.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ apiVersion: v1
151151
kind: Service
152152
metadata:
153153
name: radarr-lb
154+
annotations:
155+
{{- include .Values.radarr.service.extraLBService.annotations . | nindent 4 }}
154156
labels:
155157
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
156158
spec:

helm-charts/k8s-mediaserver/templates/sabnzbd-resources.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,8 @@ apiVersion: v1
469469
kind: Service
470470
metadata:
471471
name: sabnzbd-lb
472+
annotations:
473+
{{- include .Values.sabnzbd.service.extraLBService.annotations . | nindent 4 }}
472474
labels:
473475
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
474476
spec:

helm-charts/k8s-mediaserver/templates/sonarr-resources.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,8 @@ apiVersion: v1
149149
kind: Service
150150
metadata:
151151
name: sonarr-lb
152+
annotations:
153+
{{- include .Values.sonarr.service.extraLBService.annotations . | nindent 4 }}
152154
labels:
153155
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
154156
spec:

helm-charts/k8s-mediaserver/templates/transmission-resources.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,8 @@ apiVersion: v1
255255
kind: Service
256256
metadata:
257257
name: transmission-lb
258+
annotations:
259+
{{- include .Values.transmission.service.extraLBService.annotations . | nindent 4 }}
258260
labels:
259261
{{- include "k8s-mediaserver.labels" . | nindent 4 }}
260262
spec:

helm-charts/k8s-mediaserver/values.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,35 @@ sabnzbd:
202202
# storage: 5Gi
203203
# selector: {}
204204

205+
prowlarr:
206+
enabled: true
207+
container:
208+
image: docker.io/linuxserver/prowlarr
209+
tag: develop
210+
nodeSelector: {}
211+
port: 9696
212+
service:
213+
type: ClusterIP
214+
port: 9696
215+
nodePort:
216+
extraLBService: false
217+
ingress:
218+
enabled: true
219+
annotations: {}
220+
path: /prowlarr
221+
tls:
222+
enabled: false
223+
secretName: ""
224+
resources: {}
225+
volume: {}
226+
# name: pvc-prowlarr-config
227+
# storageClassName: longhorn
228+
# annotations: {}
229+
# labels: {}
230+
# accessModes: ReadWriteOnce
231+
# storage: 5Gi
232+
# selector: {}
233+
205234
plex:
206235
enabled: true
207236
claim: "CHANGEME"

0 commit comments

Comments
 (0)