convert to use app-template

This commit is contained in:
2024-05-29 13:28:01 -05:00
parent 1fe503b586
commit bf9283eb41
6 changed files with 209 additions and 67 deletions

View File

@@ -1,14 +1,21 @@
apiVersion: v2 apiVersion: v2
name: qbittorrent name: qbittorrent
version: 0.0.7 version: 1.0.0
description: qBittorrent
home: home:
keywords:
- downloads
- torrent
sources: sources:
- https://github.com/qbittorrent/qBittorrent - https://github.com/qbittorrent/qBittorrent
- https://docs.linuxserver.io/images/docker-qbittorrent/ - https://docs.linuxserver.io/images/docker-qbittorrent/
- https://github.com/qdm12/gluetun - https://github.com/qdm12/gluetun
- https://github.com/alexlebens/helm-charts/tree/main/charts/homepage - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies: dependencies:
- name: qbittorrent - name: qbittorrent
version: 0.0.8 version: 0.0.8
repository: http://alexlebens.github.io/helm-charts repository: http://alexlebens.github.io/helm-charts
appVersion: "version-4.6.3-r0" icon: https://avatars.githubusercontent.com/u/2131270?s=48&v=4
appVersion: version-4.6.3-r0

View File

@@ -4,7 +4,7 @@ metadata:
name: qbittorrent-auth name: qbittorrent-auth
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: {{ .Release.Name }} app.kubernetes.io/name: qbittorrent-auth
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web app.kubernetes.io/component: web
@@ -18,7 +18,7 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /qbittorrent/auth key: /cl01tl/qbittorrent/auth
metadataPolicy: None metadataPolicy: None
property: admin-password property: admin-password
@@ -29,7 +29,7 @@ metadata:
name: qbittorrent-wireguard-conf name: qbittorrent-wireguard-conf
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: {{ .Release.Name }} app.kubernetes.io/name: qbittorrent-wireguard-conf
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web app.kubernetes.io/component: web
@@ -43,6 +43,6 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: /qbittorrent/config key: /cl01tl/qbittorrent/config
metadataPolicy: None metadataPolicy: None
property: wg0.conf property: wg0.conf

View File

@@ -1,5 +1,27 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata:
name: qbittorrent-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: qbittorrent-config
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: pvc-43f8b890-23c0-4f2b-b827-20055a8b4777
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata: metadata:
name: qbittorrent-nfs-storage name: qbittorrent-nfs-storage
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}

View File

@@ -4,7 +4,7 @@ metadata:
name: qbittorrent-nfs-storage name: qbittorrent-nfs-storage
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: {{ .Release.Name }} app.kubernetes.io/name: qbittorrent-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage app.kubernetes.io/component: storage
@@ -17,8 +17,8 @@ spec:
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
nfs: nfs:
path: {{ .Values.persistence.media.nfsPath }} path: /volume2/Storage
server: {{ .Values.persistence.media.nfsServer }} server: synologybond.alexlebens.net
mountOptions: mountOptions:
- vers=4 - vers=4
- minorversion=1 - minorversion=1

View File

@@ -0,0 +1,21 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: qbittorrent
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: qbittorrent
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
endpoints:
- port: metrics
interval: 30s
scrapeTimeout: 15s
path: /metrics
selector:
matchLabels:
app.kubernetes.io/name: qbittorrent
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,64 +1,156 @@
qbittorrent: qbittorrent:
global: controllers:
persistence: main:
media: type: deployment
claimName: qbittorrent-nfs-storage replicas: 1
mountPath: /mnt/store strategy: Recreate
server: revisionHistoryLimit: 3
env: containers:
- name: TZ qbittorrent:
value: US/Central image:
- name: PUID repository: linuxserver/qbittorrent
value: "1000" tag: version-4.6.3-r0
- name: PGID pullPolicy: IfNotPresent
value: "1000" env:
resources: - name: TZ
requests: value: US/Central
cpu: 100m - name: PUID
memory: 2Gi value: "1000"
limits: - name: PGID
cpu: 2000m value: "1000"
memory: 2Gi - name: UMASK_SET
ingress: value: "002"
enabled: true - name: WEBUI_PORT
value: 8080
resources:
requests:
cpu: 100m
memory: 1Gi
gluetun:
image:
repository: ghcr.io/qdm12/gluetun
tag: v3.38.0
pullPolicy: IfNotPresent
env:
- name: VPN_SERVICE_PROVIDER
value: custom
- name: VPN_TYPE
value: wireguard
- name: FIREWALL_OUTBOUND_SUBNETS
value: 192.168.1.0/24,10.244.0.0/16
- name: FIREWALL_INPUT_PORTS
value: 8080,9022
- name: DOT
value: "off"
securityContext:
privileged: True
capabilities:
add:
- NET_ADMIN
resources:
requests:
cpu: 100m
memory: 256Mi
exporter:
image:
repository: esanchezm/prometheus-qbittorrent-exporter
tag: v1.5.1
pullPolicy: IfNotPresent
env:
- name: QBITTORRENT_HOST
value: "http://localhost"
- name: QBITTORRENT_PORT
value: "8080"
- name: EXPORTER_PORT
value: "9022"
- name: QBITTORRENT_USER
value: admin
- name: QBITTORRENT_PASS
valueFrom:
secretKeyRef:
name: qbittorrent-auth
key: admin-password
- name: EXPORTER_LOG_LEVEL
value: INFO
resources:
requests:
cpu: 100m
memory: 256Mi
serviceAccount:
create: true
service:
http:
controller: main
ports:
http:
port: 8080
targetPort: 8080
protocol: HTTP
health:
controller: main
ports:
http:
port: 9999
targetPort: 9999
protocol: HTTP
metrics:
controller: main
ports:
http:
port: 9022
targetPort: 9022
protocol: HTTP
ingress:
main:
className: traefik className: traefik
annotations: annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true" traefik.ingress.kubernetes.io/router.tls: "true"
cert-manager.io/cluster-issuer: letsencrypt-issuer cert-manager.io/cluster-issuer: letsencrypt-issuer
host: qbittorrent.alexlebens.net hosts:
persistence: - host: qbittorrent.alexlebens.net
config: paths:
storageClassName: nfs-client - path: /
storageSize: 1Gi pathType: Prefix
gluetun: service:
enabled: true name: qbittorrent-http
env: port: 8000
- name: VPN_SERVICE_PROVIDER tls:
value: custom - secretName: qbittorrent-secret-tls
- name: VPN_TYPE hosts:
value: wireguard - qbittorrent.alexlebens.net
- name: FIREWALL_OUTBOUND_SUBNETS persistence:
value: 192.168.1.0/24,10.244.0.0/16 config:
- name: FIREWALL_INPUT_PORTS existingClaim: qbittorrent-config
value: 8080,9022 advancedMounts:
- name: DOT main:
value: "off" qbittorrent:
existingSecretName: qbittorrent-wireguard-conf - path: /config
metrics: readOnly: false
enabled: true storage:
serviceMonitor: existingClaim: qbittorrent-nfs-storage
advancedMounts:
main:
qbittorrent:
- path: /mnt/store
readOnly: false
wireguard-config:
enabled: true enabled: true
exporter: type: secret
env: name: qbittorrent-wireguard-conf
- name: QBITTORRENT_USER advancedMounts:
value: admin main:
- name: QBITTORRENT_PASS main:
valueFrom: - path: /gluetun/wireguard/wg0.conf
secretKeyRef: readOnly: true
name: qbittorrent-auth mountPropagation: None
key: admin-password subPath: wg0.conf
persistence: tunnel-device:
media: enabled: true
nfsPath: /volume2/Storage type: hostPath
nfsServer: synologybond.alexlebens.net path: /dev/net/tun
advancedMounts:
main:
gluetun:
- path: /dev/net/tun
readOnly: false