1924 lines
54 KiB
YAML
1924 lines
54 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: glutun-update-script
|
|
namespace: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: glutun-update-script
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
data:
|
|
update.sh: |
|
|
API_ENDPOINT="http://localhost:8080/api/v2";
|
|
MAX_RETRIES=5
|
|
SUCCESS=false
|
|
|
|
echo " "
|
|
echo ">> Running Update Port Script ..."
|
|
|
|
echo " "
|
|
echo ">> Verifying required commands ..."
|
|
echo " "
|
|
|
|
for i in $(seq 1 "$MAX_RETRIES"); do
|
|
if apk update 2>&1 >/dev/null; then
|
|
echo ">> Attempt $i: Repositories are reachable"
|
|
SUCCESS=true
|
|
break
|
|
else
|
|
echo ">> Attempt $i: Connection failed, retrying in 5 seconds ..."
|
|
sleep 5
|
|
fi
|
|
done
|
|
|
|
if [ "$SUCCESS" = false ]; then
|
|
echo ">> ERROR: Could not connect to apk repositories after $MAX_RETRIES attempts, exiting ..."
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v curl 2>&1 >/dev/null; then
|
|
echo ">> Command curl could not be found, installing";
|
|
apk add --no-cache -q curl;
|
|
if [ $? -eq 0 ]; then
|
|
echo ">> Installation successful"
|
|
else
|
|
echo ">> Installation failed with exit code $?"
|
|
exit 1
|
|
fi
|
|
fi;
|
|
|
|
if ! command -v jq 2>&1 >/dev/null; then
|
|
echo " "
|
|
echo ">> Command jq could not be found, installing";
|
|
apk add --no-cache -q jq;
|
|
if [ $? -eq 0 ]; then
|
|
echo " "
|
|
echo ">> Installation successful"
|
|
else
|
|
echo " "
|
|
echo ">> Installation failed with exit code $?"
|
|
exit 1
|
|
fi
|
|
fi;
|
|
|
|
# echo " ";
|
|
# echo ">> Authentication ...";
|
|
# curl -i --silent --header 'Referer: http://localhost:8080' --output response_body_auth.json --data 'username=admin&password=adminadmin' "${API_ENDPOINT}/auth/login" -c cookie;
|
|
|
|
echo " ";
|
|
echo ">> Test access ...";
|
|
HTTP_STATUS=$(curl -i -X GET --silent --write-out '%{http_code}' --output response_body_test.json -b cookie -c cookie "${API_ENDPOINT}/app/version");
|
|
echo ">> HTTP Status Code: $HTTP_STATUS"
|
|
|
|
VERSION=$(tail -n 1 response_body_test.json)
|
|
|
|
if [ "$HTTP_STATUS" == "200" ]; then
|
|
echo ">> Access confirmed, qBittorrent version: ${VERSION}"
|
|
HTTP_STATUS=""
|
|
else
|
|
echo ">> ERROR: HTTP status code: $HTTP_STATUS"
|
|
exit 1
|
|
fi
|
|
|
|
PAYLOAD=$( jq -n \
|
|
'{random_port: true}' );
|
|
|
|
echo " ";
|
|
echo ">> Setting port to random ...";
|
|
HTTP_STATUS=$(curl -i -X POST --silent -b cookie -c cookie --write-out '%{http_code}' --output response_body_random.json --data "json=$PAYLOAD" "${API_ENDPOINT}/app/setPreferences");
|
|
|
|
if [ "$HTTP_STATUS" == "200" ]; then
|
|
echo ">> Random port set"
|
|
HTTP_STATUS=""
|
|
else
|
|
echo ">> ERROR: HTTP status code: $HTTP_STATUS"
|
|
exit 1
|
|
fi
|
|
|
|
echo " ";
|
|
echo ">> Sleeping for changes to take effect";
|
|
sleep 5;
|
|
|
|
PAYLOAD=$( jq -n \
|
|
"{listen_port: ${1}}" );
|
|
|
|
echo " ";
|
|
echo ">> Updating port with ${1} ...";
|
|
HTTP_STATUS=$(curl -i -X POST --silent -b cookie -c cookie --write-out '%{http_code}' --output response_body_update.json --data "json=$PAYLOAD" "${API_ENDPOINT}/app/setPreferences");
|
|
|
|
if [ "$HTTP_STATUS" == "200" ]; then
|
|
echo ">> Port set"
|
|
HTTP_STATUS=""
|
|
else
|
|
echo ">> ERROR: HTTP status code: $HTTP_STATUS"
|
|
exit 1
|
|
fi
|
|
|
|
echo " ";
|
|
echo ">> Sleeping for changes to take effect";
|
|
sleep 5;
|
|
|
|
HTTP_STATUS=$(curl -i -X GET --silent -b cookie -c cookie --write-out '%{http_code}' --output response_body_check.json "${API_ENDPOINT}/app/preferences");
|
|
LISTEN_PORT=$(tail -n 1 response_body_check.json | jq -r .listen_port)
|
|
|
|
echo " ";
|
|
echo ">> qBittorrent's post is now: $LISTEN_PORT";
|
|
|
|
if [[ "$HTTP_STATUS" == "200" && "$LISTEN_PORT" == "${1}" ]]; then
|
|
echo ">> Port updated successfully!"
|
|
else
|
|
echo ">> ERROR: HTTP status code: $HTTP_STATUS"
|
|
exit 1
|
|
fi
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: qbit-manage-config
|
|
namespace: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: qbit-manage-config
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
data:
|
|
config.yml: |
|
|
# Please refer to the link below for more details on how to set up the configuration file
|
|
# https://github.com/StuffAnThings/qbit_manage/wiki/Config-Setup
|
|
|
|
commands:
|
|
dry_run: false
|
|
recheck: true
|
|
cat_update: true
|
|
tag_update: true
|
|
rem_unregistered: true
|
|
tag_tracker_error: true
|
|
rem_orphaned: true
|
|
tag_nohardlinks: false
|
|
share_limits: true
|
|
skip_qb_version_check: true
|
|
skip_cleanup: false
|
|
|
|
qbt:
|
|
host: qbittorrent.qbittorrent:8080
|
|
user:
|
|
pass:
|
|
|
|
settings:
|
|
force_auto_tmm: true
|
|
tracker_error_tag: tracker-error
|
|
share_limits_tag: share-limit
|
|
share_limits_min_seeding_time_tag: seed-time-not-reached
|
|
cat_filter_completed: false
|
|
share_limits_filter_completed: false
|
|
rem_unregistered_filter_completed: false
|
|
cat_update_all: true
|
|
disable_qbt_default_share_limits: true
|
|
tag_stalled_torrents: true
|
|
nohardlinks_tag: no-hardlinks
|
|
stalled_tag: stalled
|
|
share_limits_min_num_seeds_tag: min-seeds-not-reached
|
|
share_limits_last_active_tag: last-active-not-reached
|
|
tag_nohardlinks_filter_completed: true
|
|
force_auto_tmm_ignore_tags: []
|
|
rem_unregistered_ignore_list: []
|
|
|
|
directory:
|
|
root_dir: /mnt/store/Torrent/
|
|
recycle_bin: /qbittorrent/Trash
|
|
torrents_dir: /qbittorrent/qBittorrent/BT_backup
|
|
orphaned_dir: /qbittorrent/Orphaned
|
|
|
|
cat:
|
|
-< COMPLETED: /mnt/store/Torrent/FINISHED/COMPLETED
|
|
-< IMPORT: /mnt/store/Torrent/FINISHED/IMPORT
|
|
-< SAVE: /mnt/store/Torrent/FINISHED/SAVE
|
|
-< ZIM: /mnt/store/Kiwix
|
|
lidarr: /mnt/store/Torrent/FINISHED/LIDARR
|
|
prowlarr: /mnt/store/Torrent/FINISHED/SAVE
|
|
radarr-4k: /mnt/store/Torrent/FINISHED/RADARR4K
|
|
radarr-anime: /mnt/store/Torrent/FINISHED/RADARRANIME
|
|
radarr-standup: /mnt/store/Torrent/FINISHED/RADARRSTANDUP
|
|
radarr: /mnt/store/Torrent/FINISHED/RADARR
|
|
shelfmark-audiobooks: /mnt/store/Torrent/FINISHED/SHELFMARKAUDIOBOOKS
|
|
shelfmark-books: /mnt/store/Torrent/FINISHED/SHELFMARKBOOKS
|
|
sonarr-4k: /mnt/store/Torrent/FINISHED/SONARR4K
|
|
sonarr-anime: /mnt/store/Torrent/FINISHED/SONARRANIME
|
|
sonarr: /mnt/store/Torrent/FINISHED/SONARR
|
|
|
|
tracker:
|
|
alpharatio.cc:
|
|
tag: AlphaRatio
|
|
avistaz:
|
|
tag: Avistaz
|
|
cathode-ray.tube:
|
|
tag: CathodeRayTube
|
|
mvgroup.org:
|
|
tag: MVGroup
|
|
torrentleech|tleechreload:
|
|
tag: TorrentLeech
|
|
archive.org:
|
|
tag: InternetArchive
|
|
openzim.org:
|
|
tag: Zim
|
|
coppersurfer.tk|arenabg.com|explodie.org|tfile.co|1337x.org|zer0day.to|i2p.rocks|ccc.de|nwps.ws|opentrackr.org:
|
|
tag: Other
|
|
|
|
share_limits:
|
|
private:
|
|
priority: 1
|
|
include_any_tags:
|
|
- AlphaRatio
|
|
- TorrentLeech
|
|
categories:
|
|
- -< COMPLETED
|
|
max_ratio: 2.0
|
|
min_seeding_time: 14d
|
|
max_seeding_time: 30d
|
|
min_num_seeds: 2
|
|
last_active: 3d
|
|
cleanup: true
|
|
# save:
|
|
# priority: 2
|
|
# categories:
|
|
# - -< SAVE
|
|
# max_ratio: 2.0
|
|
# min_seeding_time: 14d
|
|
# max_seeding_time: 30d
|
|
# min_num_seeds: 2
|
|
# last_active: 30d
|
|
# cleanup: false
|
|
# zim:
|
|
# priority: 3
|
|
# categories:
|
|
# - -< ZIM
|
|
# max_ratio: 2.0
|
|
# min_seeding_time: 14d
|
|
# max_seeding_time: 30d
|
|
# min_num_seeds: 2
|
|
# last_active: 30d
|
|
# cleanup: false
|
|
default:
|
|
priority: 999
|
|
include_any_tags:
|
|
- Other
|
|
categories:
|
|
- -< COMPLETED
|
|
max_seeding_time: 3d
|
|
limit_upload_speed: 100
|
|
cleanup: true
|
|
|
|
recyclebin:
|
|
enabled: true
|
|
empty_after_x_days: 7
|
|
save_torrents: true
|
|
split_by_category: true
|
|
|
|
orphaned:
|
|
empty_after_x_days: 30
|
|
exclude_patterns:
|
|
- /mnt/store/Torrent/QBITTORRENT/*
|
|
- /mnt/store/Torrent/TORRENT/*
|
|
- /mnt/store/Torrent/DOWNLOADING/*
|
|
- '**/.DS_Store'
|
|
- '**/Thumbs.db'
|
|
- '**/@eaDir'
|
|
- '**/*.!qB'
|
|
- '**/*_unpackerred'
|
|
max_orphaned_files_to_delete: 50
|
|
|
|
# apprise:
|
|
# api_url: http://localhost:8000/notify
|
|
# notify_url: ""
|
|
#
|
|
# webhooks:
|
|
# error: apprise
|
|
# run_start: apprise
|
|
# run_end: apprise
|
|
# function:
|
|
# rem_orphaned: apprise
|
|
# cleanup_dirs: apprise
|
|
# tag_tracker_error:
|
|
# share_limits:
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: qbittorrent-main
|
|
labels:
|
|
app.kubernetes.io/controller: main
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
revisionHistoryLimit: 3
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/controller: main
|
|
app.kubernetes.io/name: qbittorrent
|
|
app.kubernetes.io/instance: qbittorrent
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/controller: main
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/name: qbittorrent
|
|
spec:
|
|
enableServiceLinks: false
|
|
serviceAccountName: default
|
|
automountServiceAccountToken: true
|
|
hostIPC: false
|
|
hostNetwork: false
|
|
hostPID: false
|
|
dnsPolicy: ClusterFirst
|
|
initContainers:
|
|
- args:
|
|
- -ec
|
|
- |
|
|
sysctl -w net.ipv4.ip_forward=1;
|
|
sysctl -w net.ipv6.conf.all.disable_ipv6=1
|
|
command:
|
|
- /bin/sh
|
|
image: busybox:1.37.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: init-sysctl
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 128Mi
|
|
securityContext:
|
|
privileged: true
|
|
containers:
|
|
- env:
|
|
- name: QBITTORRENT_HOST
|
|
value: localhost
|
|
- name: QBITTORRENT_PORT
|
|
value: "8080"
|
|
- name: EXPORTER_PORT
|
|
value: "9022"
|
|
- name: EXPORTER_LOG_LEVEL
|
|
value: INFO
|
|
image: esanchezm/prometheus-qbittorrent-exporter:v1.6.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: exporter
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 64Mi
|
|
- env:
|
|
- name: VPN_SERVICE_PROVIDER
|
|
value: protonvpn
|
|
- name: VPN_TYPE
|
|
value: wireguard
|
|
- name: WIREGUARD_PRIVATE_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: private-key
|
|
name: qbittorrent-wireguard-conf
|
|
- name: UPDATER_PROTONVPN_EMAIL
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: proton-email
|
|
name: qbittorrent-wireguard-conf
|
|
- name: UPDATER_PROTONVPN_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: proton-password
|
|
name: qbittorrent-wireguard-conf
|
|
- name: VPN_PORT_FORWARDING
|
|
value: "on"
|
|
- name: VPN_PORT_FORWARDING_UP_COMMAND
|
|
value: /bin/sh -c "/gluetun/update.sh {{PORTS}}"
|
|
- name: PORT_FORWARD_ONLY
|
|
value: "on"
|
|
- name: FIREWALL_OUTBOUND_SUBNETS
|
|
value: 192.168.1.0/24,10.244.0.0/16
|
|
- name: FIREWALL_INPUT_PORTS
|
|
value: 8080,9022
|
|
- name: DNS_UPSTREAM_RESOLVER_TYPE
|
|
value: dot
|
|
- name: HTTPPROXY
|
|
value: "off"
|
|
- name: SHADOWSOCKS
|
|
value: "off"
|
|
image: ghcr.io/qdm12/gluetun:v3.41.1@sha256:1a5bf4b4820a879cdf8d93d7ef0d2d963af56670c9ebff8981860b6804ebc8ab
|
|
imagePullPolicy: IfNotPresent
|
|
lifecycle:
|
|
postStart:
|
|
exec:
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- (ip rule del table 51820; ip -6 rule del table 51820) || true
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- /gluetun-entrypoint
|
|
- healthcheck
|
|
failureThreshold: 5
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 30
|
|
successThreshold: 1
|
|
timeoutSeconds: 15
|
|
name: gluetun
|
|
resources:
|
|
limits:
|
|
devic.es/tun: "1"
|
|
requests:
|
|
cpu: 10m
|
|
devic.es/tun: "1"
|
|
memory: 64Mi
|
|
securityContext:
|
|
capabilities:
|
|
add:
|
|
- NET_ADMIN
|
|
- SYS_MODULE
|
|
privileged: true
|
|
volumeMounts:
|
|
- mountPath: /gluetun/update.sh
|
|
name: update-script
|
|
subPath: update.sh
|
|
- env:
|
|
- name: TZ
|
|
value: US/Central
|
|
- name: PUID
|
|
value: "1000"
|
|
- name: PGID
|
|
value: "1000"
|
|
- name: UMASK_SET
|
|
value: "002"
|
|
- name: WEBUI_PORT
|
|
value: "8080"
|
|
image: ghcr.io/linuxserver/qbittorrent:5.1.4@sha256:6a7ffbfff04dd109bff37c474bfee00aa08dea5edb78c670439be3ed242b70fa
|
|
imagePullPolicy: IfNotPresent
|
|
name: qbittorrent
|
|
resources:
|
|
requests:
|
|
cpu: 500m
|
|
memory: 1Gi
|
|
volumeMounts:
|
|
- mountPath: /config/qBittorrent
|
|
name: config-data
|
|
- mountPath: /mnt/store
|
|
name: storage
|
|
volumes:
|
|
- name: config-data
|
|
persistentVolumeClaim:
|
|
claimName: qbittorrent-config-data
|
|
- name: storage
|
|
persistentVolumeClaim:
|
|
claimName: qbittorrent-nfs-storage
|
|
- configMap:
|
|
defaultMode: 493
|
|
name: glutun-update-script
|
|
name: update-script
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: qbittorrent-qbit-manage
|
|
labels:
|
|
app.kubernetes.io/controller: qbit-manage
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
namespace: qbittorrent
|
|
spec:
|
|
revisionHistoryLimit: 3
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/controller: qbit-manage
|
|
app.kubernetes.io/name: qbittorrent
|
|
app.kubernetes.io/instance: qbittorrent
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/controller: qbit-manage
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/name: qbittorrent
|
|
spec:
|
|
enableServiceLinks: false
|
|
serviceAccountName: default
|
|
automountServiceAccountToken: true
|
|
hostIPC: false
|
|
hostNetwork: false
|
|
hostPID: false
|
|
dnsPolicy: ClusterFirst
|
|
initContainers:
|
|
- command:
|
|
- /bin/sh
|
|
- -ec
|
|
- |
|
|
cp /config/config.yml /app/config/config.yml
|
|
image: busybox:1.37.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: init-copy-config
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 128Mi
|
|
volumeMounts:
|
|
- mountPath: /config/config.yml
|
|
mountPropagation: None
|
|
name: qbit-manage-config
|
|
readOnly: true
|
|
subPath: config.yml
|
|
- mountPath: /app/config
|
|
name: qbit-manage-config-data
|
|
containers:
|
|
- env:
|
|
- name: TZ
|
|
value: US/Central
|
|
- name: PGID
|
|
value: "1000"
|
|
- name: PUID
|
|
value: "1000"
|
|
- name: APPRISE_STORAGE_MODE
|
|
value: memory
|
|
- name: APPRISE_STATEFUL_MODE
|
|
value: disabled
|
|
- name: APPRISE_WORKER_COUNT
|
|
value: "1"
|
|
- name: APPRISE_STATELESS_URLS
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: ntfy-url
|
|
name: qbittorrent-qbit-manage-config
|
|
image: caronc/apprise:v1.3.2
|
|
imagePullPolicy: IfNotPresent
|
|
name: apprise-api
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 128Mi
|
|
- env:
|
|
- name: TZ
|
|
value: US/Central
|
|
- name: QBT_SCHEDULE
|
|
value: 0 * * * *
|
|
- name: QBT_STARTUP_DELAY
|
|
value: "360"
|
|
- name: QBT_CONFIG_DIR
|
|
value: /app/config/
|
|
- name: QBT_LOGFILE
|
|
value: /app/var/activity.log
|
|
- name: QBT_LOG_LEVEL
|
|
value: INFO
|
|
image: ghcr.io/stuffanthings/qbit_manage:v4.6.5
|
|
imagePullPolicy: IfNotPresent
|
|
name: qbit-manage
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 64Mi
|
|
volumeMounts:
|
|
- mountPath: /qbittorrent/qBittorrent
|
|
name: config-data
|
|
- mountPath: /config/config.yml
|
|
mountPropagation: None
|
|
name: qbit-manage-config
|
|
readOnly: true
|
|
subPath: config.yml
|
|
- mountPath: /app/config
|
|
name: qbit-manage-config-data
|
|
- mountPath: /app/var
|
|
name: qbit-manage-config-var
|
|
- mountPath: /mnt/store
|
|
name: storage
|
|
volumes:
|
|
- name: config-data
|
|
persistentVolumeClaim:
|
|
claimName: qbittorrent-config-data
|
|
- configMap:
|
|
name: qbit-manage-config
|
|
name: qbit-manage-config
|
|
- name: qbit-manage-config-data
|
|
persistentVolumeClaim:
|
|
claimName: qbittorrent-qbit-manage-config-data
|
|
- emptyDir: {}
|
|
name: qbit-manage-config-var
|
|
- name: storage
|
|
persistentVolumeClaim:
|
|
claimName: qbittorrent-nfs-storage
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: qbittorrent-qui
|
|
labels:
|
|
app.kubernetes.io/controller: qui
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
revisionHistoryLimit: 3
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/controller: qui
|
|
app.kubernetes.io/name: qbittorrent
|
|
app.kubernetes.io/instance: qbittorrent
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/controller: qui
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/name: qbittorrent
|
|
spec:
|
|
enableServiceLinks: false
|
|
serviceAccountName: default
|
|
automountServiceAccountToken: true
|
|
hostIPC: false
|
|
hostNetwork: false
|
|
hostPID: false
|
|
dnsPolicy: ClusterFirst
|
|
containers:
|
|
- env:
|
|
- name: QUI__METRICS_ENABLED
|
|
value: "true"
|
|
- name: QUI__METRICS_HOST
|
|
value: 0.0.0.0
|
|
- name: QUI__METRICS_PORT
|
|
value: "9074"
|
|
- name: QUI__OIDC_ENABLED
|
|
value: "true"
|
|
- name: QUI__OIDC_ISSUER
|
|
value: https://auth.alexlebens.dev/application/o/qui/
|
|
- name: QUI__OIDC_CLIENT_ID
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: client
|
|
name: qui-oidc-secret
|
|
- name: QUI__OIDC_CLIENT_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: secret
|
|
name: qui-oidc-secret
|
|
- name: QUI__OIDC_REDIRECT_URL
|
|
value: https://qui.alexlebens.net/api/auth/oidc/callback
|
|
- name: QUI__OIDC_DISABLE_BUILT_IN_LOGIN
|
|
value: "false"
|
|
image: ghcr.io/autobrr/qui:v1.14.1
|
|
imagePullPolicy: IfNotPresent
|
|
name: qui
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 128Mi
|
|
volumeMounts:
|
|
- mountPath: /config
|
|
name: qui-config-data
|
|
volumes:
|
|
- name: qui-config-data
|
|
persistentVolumeClaim:
|
|
claimName: qbittorrent-qui-config-data
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-config-data-backup-secret-external
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-config-data-backup-secret-external
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/digital-ocean
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/digital-ocean
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/volsync-backups
|
|
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: AWS_ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: AWS_SECRET_ACCESS_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-config-data-backup-secret-local
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-config-data-backup-secret-local
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-local
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-local
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_REGION
|
|
- secretKey: AWS_ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_SECRET_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-config-data-backup-secret-remote
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-config-data-backup-secret-remote
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-remote
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-remote
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_REGION
|
|
- secretKey: AWS_ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_SECRET_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config-data-backup-secret-external
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qbit-manage-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qbit-manage-config-data-backup-secret-external
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-qbit-manage-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/digital-ocean
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/digital-ocean
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/volsync-backups
|
|
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: AWS_ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: AWS_SECRET_ACCESS_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config-data-backup-secret-local
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qbit-manage-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qbit-manage-config-data-backup-secret-local
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-qbit-manage-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-local
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-local
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_REGION
|
|
- secretKey: AWS_ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_SECRET_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config-data-backup-secret-remote
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qbit-manage-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qbit-manage-config-data-backup-secret-remote
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-qbit-manage-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-remote
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-remote
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_REGION
|
|
- secretKey: AWS_ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_SECRET_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config
|
|
namespace: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: qbittorrent-qbit-manage-config
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
data:
|
|
- secretKey: ntfy-url
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /cl01tl/qbittorrent/qbit-manage
|
|
metadataPolicy: None
|
|
property: ntfy-url
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-qui-config-data-backup-secret-external
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qui-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qui-config-data-backup-secret-external
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-qui-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/digital-ocean
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/digital-ocean
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/volsync-backups
|
|
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: AWS_ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: AWS_SECRET_ACCESS_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-qui-config-data-backup-secret-local
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qui-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qui-config-data-backup-secret-local
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-qui-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-local
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-local
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_REGION
|
|
- secretKey: AWS_ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_SECRET_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-qui-config-data-backup-secret-remote
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qui-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qui-config-data-backup-secret-remote
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
target:
|
|
template:
|
|
mergePolicy: Merge
|
|
engineVersion: v2
|
|
data:
|
|
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/qbittorrent/qbittorrent-qui-config-data"
|
|
data:
|
|
- secretKey: BUCKET_ENDPOINT
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-remote
|
|
metadataPolicy: None
|
|
property: BUCKET_ENDPOINT
|
|
- secretKey: RESTIC_PASSWORD
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /volsync/restic/garage-remote
|
|
metadataPolicy: None
|
|
property: RESTIC_PASSWORD
|
|
- secretKey: AWS_DEFAULT_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_REGION
|
|
- secretKey: AWS_ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_KEY_ID
|
|
- secretKey: AWS_SECRET_ACCESS_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/volsync-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_SECRET_KEY
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qbittorrent-wireguard-conf
|
|
namespace: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: qbittorrent-wireguard-conf
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
data:
|
|
- secretKey: private-key
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /protonvpn/conf/cl01tl
|
|
metadataPolicy: None
|
|
property: private-key
|
|
- secretKey: proton-email
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /protonvpn/conf/cl01tl
|
|
metadataPolicy: None
|
|
property: email
|
|
- secretKey: proton-password
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /protonvpn/conf/cl01tl
|
|
metadataPolicy: None
|
|
property: password
|
|
---
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: qui-oidc-secret
|
|
namespace: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: qui-oidc-secret
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
data:
|
|
- secretKey: secret
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /authentik/oidc/qui
|
|
metadataPolicy: None
|
|
property: secret
|
|
- secretKey: client
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /authentik/oidc/qui
|
|
metadataPolicy: None
|
|
property: client
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: qbittorrent-main
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
parentRefs:
|
|
- group: gateway.networking.k8s.io
|
|
kind: Gateway
|
|
name: traefik-gateway
|
|
namespace: traefik
|
|
hostnames:
|
|
- "qbittorrent.alexlebens.net"
|
|
rules:
|
|
- backendRefs:
|
|
- group: ""
|
|
kind: Service
|
|
name: qbittorrent
|
|
namespace: qbittorrent
|
|
port: 8080
|
|
weight: 100
|
|
matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: qbittorrent-qui
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
parentRefs:
|
|
- group: gateway.networking.k8s.io
|
|
kind: Gateway
|
|
name: traefik-gateway
|
|
namespace: traefik
|
|
hostnames:
|
|
- "qui.alexlebens.net"
|
|
rules:
|
|
- backendRefs:
|
|
- group: ""
|
|
kind: Service
|
|
name: qbittorrent-qui
|
|
namespace: qbittorrent
|
|
port: 80
|
|
weight: 100
|
|
matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /
|
|
---
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: qbittorrent
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
pod-security.kubernetes.io/audit: privileged
|
|
pod-security.kubernetes.io/enforce: privileged
|
|
pod-security.kubernetes.io/warn: privileged
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata:
|
|
name: qbittorrent-nfs-storage
|
|
namespace: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: qbittorrent-nfs-storage
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
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
|
|
---
|
|
kind: PersistentVolumeClaim
|
|
apiVersion: v1
|
|
metadata:
|
|
name: qbittorrent-config-data
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
annotations:
|
|
helm.sh/resource-policy: keep
|
|
namespace: qbittorrent
|
|
spec:
|
|
accessModes:
|
|
- "ReadWriteMany"
|
|
resources:
|
|
requests:
|
|
storage: "1Gi"
|
|
storageClassName: "ceph-filesystem"
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: qbittorrent-nfs-storage
|
|
namespace: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/name: qbittorrent-nfs-storage
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
spec:
|
|
volumeName: qbittorrent-nfs-storage
|
|
storageClassName: nfs-client
|
|
accessModes:
|
|
- ReadWriteMany
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
---
|
|
kind: PersistentVolumeClaim
|
|
apiVersion: v1
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config-data
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
annotations:
|
|
helm.sh/resource-policy: keep
|
|
namespace: qbittorrent
|
|
spec:
|
|
accessModes:
|
|
- "ReadWriteOnce"
|
|
resources:
|
|
requests:
|
|
storage: "1Gi"
|
|
storageClassName: "ceph-block"
|
|
---
|
|
kind: PersistentVolumeClaim
|
|
apiVersion: v1
|
|
metadata:
|
|
name: qbittorrent-qui-config-data
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
annotations:
|
|
helm.sh/resource-policy: keep
|
|
namespace: qbittorrent
|
|
spec:
|
|
accessModes:
|
|
- "ReadWriteOnce"
|
|
resources:
|
|
requests:
|
|
storage: "1Gi"
|
|
storageClassName: "ceph-block"
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-config-data-backup-source-external
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-config-data
|
|
trigger:
|
|
schedule: 58 10 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-config-data-backup-secret-external
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
moverSecurityContext:
|
|
fsGroup: 1000
|
|
fsGroupChangePolicy: OnRootMismatch
|
|
runAsGroup: 1000
|
|
runAsUser: 1000
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-filesystem
|
|
volumeSnapshotClassName: ceph-filesystem-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-config-data-backup-source-local
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-config-data
|
|
trigger:
|
|
schedule: 58 8 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-config-data-backup-secret-local
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
moverSecurityContext:
|
|
fsGroup: 1000
|
|
fsGroupChangePolicy: OnRootMismatch
|
|
runAsGroup: 1000
|
|
runAsUser: 1000
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-filesystem
|
|
volumeSnapshotClassName: ceph-filesystem-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-config-data-backup-source-remote
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-config-data
|
|
trigger:
|
|
schedule: 58 9 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-config-data-backup-secret-remote
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
moverSecurityContext:
|
|
fsGroup: 1000
|
|
fsGroupChangePolicy: OnRootMismatch
|
|
runAsGroup: 1000
|
|
runAsUser: 1000
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-filesystem
|
|
volumeSnapshotClassName: ceph-filesystem-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config-data-backup-source-external
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qbit-manage-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qbit-manage-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-qbit-manage-config-data
|
|
trigger:
|
|
schedule: 0 13 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-qbit-manage-config-data-backup-secret-external
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-block
|
|
volumeSnapshotClassName: ceph-blockpool-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config-data-backup-source-local
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qbit-manage-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qbit-manage-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-qbit-manage-config-data
|
|
trigger:
|
|
schedule: 0 11 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-qbit-manage-config-data-backup-secret-local
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-block
|
|
volumeSnapshotClassName: ceph-blockpool-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-qbit-manage-config-data-backup-source-remote
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qbit-manage-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qbit-manage-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-qbit-manage-config-data
|
|
trigger:
|
|
schedule: 0 12 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-qbit-manage-config-data-backup-secret-remote
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-block
|
|
volumeSnapshotClassName: ceph-blockpool-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-qui-config-data-backup-source-external
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qui-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qui-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-qui-config-data
|
|
trigger:
|
|
schedule: 2 13 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-qui-config-data-backup-secret-external
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-block
|
|
volumeSnapshotClassName: ceph-blockpool-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-qui-config-data-backup-source-local
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qui-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qui-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-qui-config-data
|
|
trigger:
|
|
schedule: 2 11 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-qui-config-data-backup-secret-local
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-block
|
|
volumeSnapshotClassName: ceph-blockpool-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: volsync.backube/v1alpha1
|
|
kind: ReplicationSource
|
|
metadata:
|
|
name: qbittorrent-qui-config-data-backup-source-remote
|
|
namespace: qbittorrent
|
|
labels:
|
|
helm.sh/chart: volsync-target-qui-config-0.8.0
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/part-of: qbittorrent
|
|
app.kubernetes.io/version: "0.8.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent-qui-config-data-backup
|
|
spec:
|
|
sourcePVC: qbittorrent-qui-config-data
|
|
trigger:
|
|
schedule: 2 12 * * *
|
|
restic:
|
|
pruneIntervalDays: 7
|
|
repository: qbittorrent-qui-config-data-backup-secret-remote
|
|
retain:
|
|
daily: 7
|
|
hourly: 0
|
|
monthly: 3
|
|
weekly: 4
|
|
yearly: 1
|
|
copyMethod: Snapshot
|
|
storageClassName: ceph-block
|
|
volumeSnapshotClassName: ceph-blockpool-snapshot
|
|
cacheCapacity: 1Gi
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: qbittorrent-qbit-manage
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
app.kubernetes.io/service: qbittorrent-qbit-manage
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 8000
|
|
targetPort: 8000
|
|
protocol: TCP
|
|
name: apprise
|
|
selector:
|
|
app.kubernetes.io/controller: qbit-manage
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/name: qbittorrent
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: qbittorrent-qui
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
app.kubernetes.io/service: qbittorrent-qui
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 80
|
|
targetPort: 7476
|
|
protocol: TCP
|
|
name: http
|
|
- port: 9074
|
|
targetPort: 9074
|
|
protocol: TCP
|
|
name: metrics
|
|
selector:
|
|
app.kubernetes.io/controller: qui
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/name: qbittorrent
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: qbittorrent
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
app.kubernetes.io/service: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 9999
|
|
targetPort: 9999
|
|
protocol: TCP
|
|
name: health
|
|
- port: 8080
|
|
targetPort: 8080
|
|
protocol: TCP
|
|
name: http
|
|
- port: 9022
|
|
targetPort: 9022
|
|
protocol: TCP
|
|
name: metrics
|
|
selector:
|
|
app.kubernetes.io/controller: main
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/name: qbittorrent
|
|
---
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: ServiceMonitor
|
|
metadata:
|
|
name: qbittorrent-apprise
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
jobLabel: qbittorrent-apprise
|
|
namespaceSelector:
|
|
matchNames:
|
|
- qbittorrent
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: qbittorrent-apprise
|
|
app.kubernetes.io/name: qbittorrent-apprise
|
|
endpoints:
|
|
- interval: 30s
|
|
path: /metrics
|
|
port: apprise
|
|
scrapeTimeout: 15s
|
|
---
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: ServiceMonitor
|
|
metadata:
|
|
name: qbittorrent-main
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
jobLabel: qbittorrent-main
|
|
namespaceSelector:
|
|
matchNames:
|
|
- qbittorrent
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/name: qbittorrent
|
|
endpoints:
|
|
- interval: 30s
|
|
path: /metrics
|
|
port: metrics
|
|
scrapeTimeout: 15s
|
|
---
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: ServiceMonitor
|
|
metadata:
|
|
name: qbittorrent-qui
|
|
labels:
|
|
app.kubernetes.io/instance: qbittorrent
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: qbittorrent
|
|
helm.sh/chart: qbittorrent-4.6.2
|
|
namespace: qbittorrent
|
|
spec:
|
|
jobLabel: qbittorrent-qui
|
|
namespaceSelector:
|
|
matchNames:
|
|
- qbittorrent
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: qbittorrent-qui
|
|
app.kubernetes.io/name: qbittorrent-qui
|
|
endpoints:
|
|
- interval: 30s
|
|
path: /metrics
|
|
port: metrics
|
|
scrapeTimeout: 15s
|