147 lines
4.2 KiB
YAML
147 lines
4.2 KiB
YAML
|
---
|
||
|
# 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: qbtools
|
||
|
spec:
|
||
|
interval: 30m
|
||
|
chart:
|
||
|
spec:
|
||
|
chart: app-template
|
||
|
version: 3.3.2
|
||
|
sourceRef:
|
||
|
kind: HelmRepository
|
||
|
name: bjw-s
|
||
|
namespace: flux-system
|
||
|
install:
|
||
|
remediation:
|
||
|
retries: 3
|
||
|
upgrade:
|
||
|
cleanupOnFail: true
|
||
|
remediation:
|
||
|
strategy: rollback
|
||
|
retries: 3
|
||
|
dependsOn:
|
||
|
- name: qbittorrent
|
||
|
namespace: qbittorrent
|
||
|
values:
|
||
|
controllers:
|
||
|
tagging:
|
||
|
type: cronjob
|
||
|
cronjob: &cronJobSpec
|
||
|
schedule: "@hourly"
|
||
|
timeZone: &timeZone America/Chicago
|
||
|
concurrencyPolicy: Forbid
|
||
|
successfulJobsHistory: 1
|
||
|
failedJobsHistory: 1
|
||
|
initContainers:
|
||
|
tagging: &container
|
||
|
image:
|
||
|
repository: ghcr.io/buroa/qbtools
|
||
|
tag: v0.16.3@sha256:1eb3be84d7d63bfd0aaffd1e85f1cfd9a5064fd8ce5ed94522672eca0d201e56
|
||
|
env:
|
||
|
TZ: *timeZone
|
||
|
POD_NAMESPACE:
|
||
|
valueFrom:
|
||
|
fieldRef:
|
||
|
fieldPath: metadata.namespace
|
||
|
args: [
|
||
|
"tagging",
|
||
|
"--added-on",
|
||
|
"--expired",
|
||
|
"--last-activity",
|
||
|
"--sites",
|
||
|
"--unregistered",
|
||
|
"--server", "qbittorrent.$(POD_NAMESPACE).svc.cluster.local",
|
||
|
"--port", "80",
|
||
|
"--config", "/config/config.yaml"
|
||
|
]
|
||
|
securityContext:
|
||
|
allowPrivilegeEscalation: false
|
||
|
readOnlyRootFilesystem: true
|
||
|
capabilities: { drop: ["ALL"] }
|
||
|
resources:
|
||
|
requests:
|
||
|
cpu: 25m
|
||
|
limits:
|
||
|
memory: 256M
|
||
|
containers:
|
||
|
unregistered:
|
||
|
<<: *container
|
||
|
args: [
|
||
|
"prune",
|
||
|
"--exclude-category", "manual",
|
||
|
"--exclude-category", "music",
|
||
|
"--exclude-tag", "added:24h",
|
||
|
"--include-tag", "unregistered",
|
||
|
# "--dry-run",
|
||
|
"--server", "qbittorrent.$(POD_NAMESPACE).svc.cluster.local",
|
||
|
"--port", "80"
|
||
|
]
|
||
|
expired:
|
||
|
<<: *container
|
||
|
args: [
|
||
|
"prune",
|
||
|
"--exclude-category", "manual",
|
||
|
"--exclude-category", "music",
|
||
|
"--include-tag", "expired", # defined in config.yaml
|
||
|
"--include-tag", "added:7d",
|
||
|
# "--dry-run",
|
||
|
"--server", "qbittorrent.$(POD_NAMESPACE).svc.cluster.local",
|
||
|
"--port", "80"
|
||
|
]
|
||
|
pod:
|
||
|
restartPolicy: OnFailure
|
||
|
orphaned:
|
||
|
type: cronjob
|
||
|
cronjob:
|
||
|
<<: *cronJobSpec
|
||
|
schedule: "@daily"
|
||
|
containers:
|
||
|
app:
|
||
|
<<: *container
|
||
|
args: [
|
||
|
"orphaned",
|
||
|
"--exclude-pattern", "*_unpackerred*",
|
||
|
"--exclude-pattern", "*/manual/*",
|
||
|
# "--dry-run",
|
||
|
"--server", "qbittorrent.$(POD_NAMESPACE).svc.cluster.local",
|
||
|
"--port", "80"
|
||
|
]
|
||
|
pod:
|
||
|
restartPolicy: OnFailure
|
||
|
reannounce:
|
||
|
containers:
|
||
|
app:
|
||
|
<<: *container
|
||
|
args: [
|
||
|
"reannounce",
|
||
|
"--process-seeding",
|
||
|
"--server", "qbittorrent.$(POD_NAMESPACE).svc.cluster.local",
|
||
|
"--port", "80"
|
||
|
]
|
||
|
defaultPodOptions:
|
||
|
securityContext:
|
||
|
runAsNonRoot: true
|
||
|
runAsUser: 568
|
||
|
runAsGroup: 568
|
||
|
seccompProfile: { type: RuntimeDefault }
|
||
|
persistence:
|
||
|
secret-file:
|
||
|
type: secret
|
||
|
name: qbtools-secret
|
||
|
globalMounts:
|
||
|
- path: /config/config.yaml
|
||
|
subPath: config.yaml
|
||
|
readOnly: true
|
||
|
media:
|
||
|
type: nfs
|
||
|
server: 10.1.1.11
|
||
|
path: /volume1/Media
|
||
|
advancedMounts:
|
||
|
orphaned:
|
||
|
app:
|
||
|
- path: /data/nas-media
|
||
|
subPath: qb/downloads
|