kubernetes/apps/downloads/qbittorrent/app/helmrelease.yaml
1
---
2
apiVersion: helm.toolkit.fluxcd.io/v2
3
kind: HelmRelease
4
metadata:
5
name: qbittorrent
6
spec:
7
chartRef:
8
kind: OCIRepository
9
name: qbittorrent
10
interval: 1h
11
values:
12
controllers:
13
qbittorrent:
14
annotations:
15
reloader.stakater.com/auto: "true"
16
containers:
17
app:
18
dependsOn:
19
- gluetun
20
image:
21
repository: ghcr.io/home-operations/qbittorrent-libtorrentv1
22
tag: 5.2.3@sha256:8a15de24cabfca8041788773436cb176378ff7735e5cb0b2fd94984d4fac6968
23
env:
24
QBT_WEBUI_PORT: &port 80
25
probes:
26
liveness:
27
enabled: true
28
spec:
29
periodSeconds: 30
30
timeoutSeconds: 5
31
failureThreshold: 5
32
readiness:
33
enabled: true
34
custom: true
35
spec:
36
httpGet:
37
path: /api/v2/app/version
38
port: *port
39
periodSeconds: 10
40
timeoutSeconds: 5
41
failureThreshold: 5
42
startup:
43
enabled: true
44
spec:
45
failureThreshold: 30
46
periodSeconds: 10
47
resources:
48
requests:
49
cpu: 250m
50
memory: 1024Mi
51
limits:
52
memory: 2Gi
53
securityContext:
54
allowPrivilegeEscalation: true
55
readOnlyRootFilesystem: false
56
capabilities: { drop: ["ALL"] }
57
gluetun:
58
image:
59
repository: ghcr.io/qdm12/gluetun
60
tag: v3.41.3@sha256:fa19cc76b2af13d57a8d3dc3066f2ada061b1c761b8aecf989b3877c0486e027
61
command:
62
- /bin/sh
63
- -c
64
- "ip rule del table 51820 2>/dev/null; ip -6 rule del table 51820 2>/dev/null; exec /gluetun-entrypoint"
65
env:
66
DNS_UPSTREAM_RESOLVER_TYPE: plain
67
FIREWALL_INPUT_PORTS: "80,9999"
68
FIREWALL_OUTBOUND_SUBNETS: "10.42.0.0/16,10.43.0.0/16,192.168.69.0/24"
69
HEALTH_SERVER_ADDRESS: ":9999"
70
PORT_FORWARD_ONLY: "on"
71
VPN_PORT_FORWARDING: "on"
72
VPN_TYPE: wireguard
73
envFrom:
74
- secretRef:
75
name: "{{ .Release.Name }}-secret"
76
probes:
77
liveness:
78
enabled: false
79
readiness:
80
enabled: false
81
startup:
82
enabled: false
83
resources:
84
requests:
85
cpu: 10m
86
memory: 96Mi
87
limits:
88
memory: 160Mi
89
securityContext:
90
allowPrivilegeEscalation: true
91
readOnlyRootFilesystem: false
92
runAsUser: 0
93
runAsGroup: 0
94
runAsNonRoot: false
95
capabilities:
96
add: ["NET_ADMIN"]
97
port-forward:
98
dependsOn:
99
- gluetun
100
image:
101
repository: docker.io/snoringdragon/gluetun-qbittorrent-port-manager
102
tag: 1.3@sha256:679b7a92c494f93b78ad37ef24f3a261e73d0a1a52505ad4f1e39580eedfa14f
103
env:
104
QBITTORRENT_SERVER: localhost
105
QBITTORRENT_PORT: *port
106
PORT_FORWARDED: /tmp/gluetun/forwarded_port
107
resources:
108
requests:
109
cpu: 10m
110
memory: 16Mi
111
limits:
112
memory: 24Mi
113
securityContext:
114
allowPrivilegeEscalation: true
115
readOnlyRootFilesystem: false
116
runAsUser: 0
117
runAsGroup: 0
118
runAsNonRoot: false
119
capabilities: { drop: ["ALL"] }
120
defaultPodOptions:
121
securityContext:
122
runAsNonRoot: false
123
runAsUser: 0
124
runAsGroup: 0
125
fsGroup: 1000
126
fsGroupChangePolicy: OnRootMismatch
127
service:
128
app:
129
ports:
130
http:
131
port: *port
132
route:
133
app:
134
annotations:
135
gethomepage.dev/enabled: "true"
136
gethomepage.dev/description: qBittorrent Download Client
137
gethomepage.dev/group: Downloads
138
gethomepage.dev/icon: si-qbittorrent
139
gethomepage.dev/name: qBittorrent
140
gethomepage.dev/widget.type: qbittorrent
141
gethomepage.dev/widget.url: "http://qbittorrent.downloads.svc.cluster.local"
142
gethomepage.dev/widget.enableLeechProgress: "true"
143
gethomepage.dev/widget.enableLeechSize: "true"
144
gethomepage.dev/pod-selector: app.kubernetes.io/name=qbittorrent
145
gethomepage.dev/weight: "40"
146
hostnames:
147
- "{{ .Release.Name }}.janpuc.com"
148
parentRefs:
149
- name: envoy-internal
150
namespace: network
151
rules:
152
- backendRefs:
153
- identifier: app
154
port: *port
155
persistence:
156
config:
157
existingClaim: "{{ .Release.Name }}"
158
incomplete:
159
type: custom
160
volumeSpec:
161
ephemeral:
162
volumeClaimTemplate:
163
spec:
164
accessModes: ["ReadWriteOnce"]
165
resources:
166
requests:
167
storage: 1Mi
168
storageClassName: miroir-slow-local
169
volumeMode: Filesystem
170
media:
171
type: nfs
172
server: bigmouth.internal
173
path: /mnt/Vault/Media
174
globalMounts:
175
- path: /media
176
tmpfs:
177
type: emptyDir
178
advancedMounts:
179
qbittorrent:
180
app:
181
- path: /config/qBittorrent/logs
182
subPath: logs
183
gluetun:
184
- path: /tmp/gluetun
185
subPath: gluetun
186
port-forward:
187
- path: /tmp/gluetun
188
subPath: gluetun
189
readOnly: true