Merge pull request 'feat: refactor apps' (#5700) from tmp/refactor-41 into main
All checks were successful
lint-test-helm / lint-helm (push) Successful in 44s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 5m17s

Reviewed-on: #5700
This commit was merged in pull request #5700.
This commit is contained in:
2026-04-08 00:55:05 +00:00
8 changed files with 71 additions and 93 deletions

View File

@@ -5,16 +5,16 @@ description: Tdarr
keywords: keywords:
- tdarr - tdarr
- video - video
- transcode home: https://docs.alexlebens.dev/applications/tdarr/
- healthchecks
home: https://wiki.alexlebens.dev/s/0a8c0a10-7847-4081-8a4b-5e6ac4cb1d62
sources: sources:
- https://github.com/HaveAGitGat/Tdarr - https://github.com/HaveAGitGat/Tdarr
- https://github.com/homeylab/tdarr-exporter - https://github.com/homeylab/tdarr-exporter
- https://github.com/haveagitgat/Tdarr/pkgs/container/tdarr - https://github.com/haveagitgat/Tdarr/pkgs/container/tdarr
- https://github.com/users/haveagitgat/packages/container/package/tdarr_node
- https://hub.docker.com/r/homeylab/tdarr-exporter - https://hub.docker.com/r/homeylab/tdarr-exporter
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
- https://github.com/homeylab/helm-charts/tree/main/charts/tdarr-exporter - https://github.com/homeylab/helm-charts/tree/main/charts/tdarr-exporter
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/volsync-target
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
@@ -34,5 +34,5 @@ dependencies:
version: 0.8.0 version: 0.8.0
repository: oci://harbor.alexlebens.net/helm-charts repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/tdarr.png icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/tdarr.png
# renovate: datasource=github-releases depName=HaveAGitGat/Tdarr # renovate: datasource=docker depName=ghcr.io/haveagitgat/tdarr
appVersion: 2.58.02 appVersion: 2.58.02

View File

@@ -4,16 +4,18 @@ tdarr:
type: deployment type: deployment
replicas: 1 replicas: 1
strategy: Recreate strategy: Recreate
revisionHistoryLimit: 3 pod:
securityContext:
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
containers: containers:
main: main:
image: image:
repository: ghcr.io/haveagitgat/tdarr repository: ghcr.io/haveagitgat/tdarr
tag: 2.67.01 tag: 2.67.01@sha256:dc23becc667f77d2489b1042bd3af87fdd2fd85c2802e126928ef2ced9a8f560
pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
value: US/Central value: America/Chicago
- name: PUID - name: PUID
value: "1001" value: "1001"
- name: PGID - name: PGID
@@ -36,12 +38,11 @@ tdarr:
value: "8265" value: "8265"
resources: resources:
requests: requests:
cpu: 200m cpu: 500m
memory: 1Gi memory: 2Gi
node: node:
type: statefulset type: statefulset
replicas: 3 replicas: 3
revisionHistoryLimit: 3
statefulset: statefulset:
volumeClaimTemplates: volumeClaimTemplates:
- name: transcode-cache - name: transcode-cache
@@ -67,11 +68,10 @@ tdarr:
main: main:
image: image:
repository: ghcr.io/haveagitgat/tdarr_node repository: ghcr.io/haveagitgat/tdarr_node
tag: 2.67.01 tag: 2.67.01@sha256:048ae8ed4de8e9f0de51ad739b2105bee3e4d1a8575120df468cec5f6ef2b1da
pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
value: US/Central value: America/Chicago
- name: PUID - name: PUID
value: "1001" value: "1001"
- name: PGID - name: PGID
@@ -96,7 +96,7 @@ tdarr:
requests: requests:
gpu.intel.com/i915: 1 gpu.intel.com/i915: 1
cpu: 10m cpu: 10m
memory: 512Mi memory: 100Mi
service: service:
api: api:
controller: server controller: server
@@ -104,14 +104,12 @@ tdarr:
http: http:
port: 8266 port: 8266
targetPort: 8266 targetPort: 8266
protocol: HTTP
web: web:
controller: server controller: server
ports: ports:
http: http:
port: 8265 port: 8265
targetPort: 8265 targetPort: 8265
protocol: HTTP
route: route:
main: main:
kind: HTTPRoute kind: HTTPRoute
@@ -124,11 +122,8 @@ tdarr:
- tdarr.alexlebens.net - tdarr.alexlebens.net
rules: rules:
- backendRefs: - backendRefs:
- group: '' - name: tdarr-web
kind: Service
name: tdarr-web
port: 8265 port: 8265
weight: 100
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@@ -139,7 +134,6 @@ tdarr:
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 50Gi size: 50Gi
retain: true
advancedMounts: advancedMounts:
server: server:
main: main:
@@ -150,7 +144,6 @@ tdarr:
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 50Gi size: 50Gi
retain: true
advancedMounts: advancedMounts:
server: server:
main: main:
@@ -177,8 +170,7 @@ tdarr:
tdarr-exporter: tdarr-exporter:
image: image:
name: homeylab/tdarr-exporter name: homeylab/tdarr-exporter
# renovate: datasource=docker depName=homeylab/tdarr-exporter tag: 1.4.3@sha256:88254cb505bfff20e86e04fa23a71789a411e7939e3bcbccbd5ef397ff91d052
tag: 1.4.3
metrics: metrics:
serviceMonitor: serviceMonitor:
enabled: true enabled: true
@@ -188,8 +180,8 @@ tdarr-exporter:
verify_ssl: false verify_ssl: false
resources: resources:
requests: requests:
cpu: 10m cpu: 1m
memory: 256Mi memory: 10Mi
volsync-target-config: volsync-target-config:
pvcTarget: tdarr-config pvcTarget: tdarr-config
local: local:

View File

@@ -5,12 +5,11 @@ description: Traefik
keywords: keywords:
- traefik - traefik
- reverse-proxy - reverse-proxy
- tls home: https://docs.alexlebens.dev/applications/traefik/
- kubernetes
home: https://wiki.alexlebens.dev/s/541ec45c-6cf7-4be6-bb08-63cab175e7cb
sources: sources:
- https://github.com/traefik/traefik - https://github.com/traefik/traefik
- https://github.com/traefik/traefik-helm-chart - https://github.com/traefik/traefik-helm-chart/tree/master/traefik
- https://github.com/traefik/traefik-helm-chart/tree/master/traefik-crds
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:

View File

@@ -1,6 +1,13 @@
traefik: traefik:
image:
registry: docker.io
repository: traefik
tag: v3.6.12@sha256:171c9c3565b29f6c133f1c1b43c5d4e5853415198e9e1078c001f8702ff66aec
deployment: deployment:
kind: DaemonSet kind: DaemonSet
podDisruptionBudget:
enabled: true
minAvailable: 1
ingressClass: ingressClass:
enabled: false enabled: false
gateway: gateway:
@@ -39,6 +46,11 @@ traefik:
enabled: true enabled: true
matchRule: (Host(`traefik-cl01tl.alexlebens.net`) && (PathPrefix(`/api/`) || PathPrefix(`/dashboard/`))) matchRule: (Host(`traefik-cl01tl.alexlebens.net`) && (PathPrefix(`/api/`) || PathPrefix(`/dashboard/`)))
entryPoints: ["websecure"] entryPoints: ["websecure"]
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
providers: providers:
kubernetesCRD: kubernetesCRD:
allowCrossNamespace: true allowCrossNamespace: true
@@ -58,8 +70,23 @@ traefik:
serviceMonitor: serviceMonitor:
enabled: true enabled: true
prometheusRule: prometheusRule:
enabled: false enabled: true
rules:
- alert: TraefikDown
expr: up{job="traefik"} == 0
for: 5m
labels:
context: traefik
severity: warning
annotations:
summary: "Traefik Down"
description: "{{ $labels.pod }} on {{ $labels.nodename }} is down"
global:
checkNewVersion: false
ports: ports:
traefik:
expose:
default: false
web: web:
port: 8000 port: 8000
expose: expose:
@@ -77,14 +104,12 @@ traefik:
- 172.16.0.0/16 - 172.16.0.0/16
- 192.168.0.0/16 - 192.168.0.0/16
- fc00::/7 - fc00::/7
insecure: false
proxyProtocol: proxyProtocol:
trustedIPs: trustedIPs:
- 10.0.0.0/8 - 10.0.0.0/8
- 172.16.0.0/16 - 172.16.0.0/16
- 192.168.0.0/16 - 192.168.0.0/16
- fc00::/7 - fc00::/7
insecure: false
websecure: websecure:
port: 8443 port: 8443
expose: expose:
@@ -102,22 +127,18 @@ traefik:
allowEncodedPercent: true allowEncodedPercent: true
allowEncodedQuestionMark: true allowEncodedQuestionMark: true
allowEncodedHash: true allowEncodedHash: true
tls:
enabled: true
forwardedHeaders: forwardedHeaders:
trustedIPs: trustedIPs:
- 10.0.0.0/8 - 10.0.0.0/8
- 172.16.0.0/16 - 172.16.0.0/16
- 192.168.0.0/16 - 192.168.0.0/16
- fc00::/7 - fc00::/7
insecure: false
proxyProtocol: proxyProtocol:
trustedIPs: trustedIPs:
- 10.0.0.0/8 - 10.0.0.0/8
- 172.16.0.0/16 - 172.16.0.0/16
- 192.168.0.0/16 - 192.168.0.0/16
- fc00::/7 - fc00::/7
insecure: false
ssh: ssh:
port: 22 port: 22
expose: expose:
@@ -129,14 +150,12 @@ traefik:
- 172.16.0.0/16 - 172.16.0.0/16
- 192.168.0.0/16 - 192.168.0.0/16
- fc00::/7 - fc00::/7
insecure: false
proxyProtocol: proxyProtocol:
trustedIPs: trustedIPs:
- 10.0.0.0/8 - 10.0.0.0/8
- 172.16.0.0/16 - 172.16.0.0/16
- 192.168.0.0/16 - 192.168.0.0/16
- fc00::/7 - fc00::/7
insecure: false
metrics: metrics:
expose: expose:
default: false default: false
@@ -145,6 +164,10 @@ traefik:
type: LoadBalancer type: LoadBalancer
externalIPs: externalIPs:
- 10.232.1.21 - 10.232.1.21
resources:
requests:
cpu: 10m
memory: 100Mi
traefik-crds: traefik-crds:
enabled: true enabled: true
traefik: true traefik: true

View File

@@ -4,6 +4,6 @@ dependencies:
version: 4.6.2 version: 4.6.2
- name: valkey - name: valkey
repository: oci://harbor.alexlebens.net/helm-charts repository: oci://harbor.alexlebens.net/helm-charts
version: 0.4.0 version: 0.5.0
digest: sha256:39a57c1505ed39180cffe9153ce69233c2376ba62c9287bc411071cf986f44de digest: sha256:bbceeb6ebc7a358798e706280aa2eaba8b47b018ea0fb736b30ece5419979c4e
generated: "2026-03-09T23:08:53.501770729Z" generated: "2026-04-07T19:36:53.116343-05:00"

View File

@@ -4,15 +4,17 @@ version: 1.0.0
description: Tube Archivist description: Tube Archivist
keywords: keywords:
- tubearchivist - tubearchivist
- download
- video - video
- youtube home: https://docs.alexlebens.dev/applications/tubearchivist/
home: https://wiki.alexlebens.dev/s/9a5f89bb-3cae-43ab-b651-d39f69a05e93
sources: sources:
- https://github.com/tubearchivist/tubearchivist - https://github.com/tubearchivist/tubearchivist
- https://github.com/elastic/elasticsearch - https://github.com/Brainicism/bgutil-ytdlp-pot-provider
- https://github.com/qdm12/gluetun
- https://hub.docker.com/r/bbilly1/tubearchivist - https://hub.docker.com/r/bbilly1/tubearchivist
- https://hub.docker.com/r/brainicism/bgutil-ytdlp-pot-provider
- https://github.com/qdm12/gluetun/pkgs/container/gluetun
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/valkey
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
@@ -22,7 +24,7 @@ dependencies:
version: 4.6.2 version: 4.6.2
- name: valkey - name: valkey
alias: valkey alias: valkey
version: 0.4.0 version: 0.5.0
repository: oci://harbor.alexlebens.net/helm-charts repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/tube-archivist.png icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/tube-archivist.png
# renovate: datasource=github-releases depName=tubearchivist/tubearchivist # renovate: datasource=github-releases depName=tubearchivist/tubearchivist

View File

@@ -14,17 +14,11 @@ spec:
data: data:
- secretKey: ELASTIC_PASSWORD - secretKey: ELASTIC_PASSWORD
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/tubearchivist/env key: /cl01tl/tubearchivist/env
metadataPolicy: None
property: ELASTIC_PASSWORD property: ELASTIC_PASSWORD
- secretKey: TA_PASSWORD - secretKey: TA_PASSWORD
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/tubearchivist/env key: /cl01tl/tubearchivist/env
metadataPolicy: None
property: TA_PASSWORD property: TA_PASSWORD
--- ---
@@ -44,24 +38,15 @@ spec:
data: data:
- secretKey: username - secretKey: username
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/tubearchivist/elasticsearch key: /cl01tl/tubearchivist/elasticsearch
metadataPolicy: None
property: username property: username
- secretKey: password - secretKey: password
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/tubearchivist/elasticsearch key: /cl01tl/tubearchivist/elasticsearch
metadataPolicy: None
property: password property: password
- secretKey: roles - secretKey: roles
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/tubearchivist/elasticsearch key: /cl01tl/tubearchivist/elasticsearch
metadataPolicy: None
property: roles property: roles
--- ---
@@ -81,29 +66,17 @@ spec:
data: data:
- secretKey: private-key - secretKey: private-key
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /airvpn/conf/cl01tl key: /airvpn/conf/cl01tl
metadataPolicy: None
property: private-key property: private-key
- secretKey: preshared-key - secretKey: preshared-key
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /airvpn/conf/cl01tl key: /airvpn/conf/cl01tl
metadataPolicy: None
property: preshared-key property: preshared-key
- secretKey: addresses - secretKey: addresses
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /airvpn/conf/cl01tl key: /airvpn/conf/cl01tl
metadataPolicy: None
property: addresses property: addresses
- secretKey: input-ports - secretKey: input-ports
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /airvpn/conf/cl01tl key: /airvpn/conf/cl01tl
metadataPolicy: None
property: input-ports property: input-ports

View File

@@ -4,13 +4,15 @@ tubearchivist:
type: deployment type: deployment
replicas: 1 replicas: 1
strategy: Recreate strategy: Recreate
revisionHistoryLimit: 3 pod:
securityContext:
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
containers: containers:
main: main:
image: image:
repository: bbilly1/tubearchivist repository: bbilly1/tubearchivist
tag: v0.5.10 tag: v0.5.10@sha256:dfe723cf008520e1758ecc3e59e6ea8761dd10d5bb099cd87289e80f5bd66567
pullPolicy: IfNotPresent
env: env:
- name: TZ - name: TZ
value: America/Chicago value: America/Chicago
@@ -40,13 +42,11 @@ tubearchivist:
bgutil: bgutil:
image: image:
repository: brainicism/bgutil-ytdlp-pot-provider repository: brainicism/bgutil-ytdlp-pot-provider
tag: 1.3.1 tag: 1.3.1@sha256:1aaa43a0ca72dfca6a6d2129a0fb4a23465c25adb1b043f8aff829a20825646b
pullPolicy: IfNotPresent
gluetun: gluetun:
image: image:
repository: ghcr.io/qdm12/gluetun repository: ghcr.io/qdm12/gluetun
tag: v3.41.1@sha256:1a5bf4b4820a879cdf8d93d7ef0d2d963af56670c9ebff8981860b6804ebc8ab tag: v3.41.1@sha256:1a5bf4b4820a879cdf8d93d7ef0d2d963af56670c9ebff8981860b6804ebc8ab
pullPolicy: IfNotPresent
lifecycle: lifecycle:
postStart: postStart:
exec: exec:
@@ -106,8 +106,6 @@ tubearchivist:
devic.es/tun: "1" devic.es/tun: "1"
requests: requests:
devic.es/tun: "1" devic.es/tun: "1"
cpu: 10m
memory: 128Mi
service: service:
main: main:
controller: main controller: main
@@ -115,7 +113,6 @@ tubearchivist:
http: http:
port: 80 port: 80
targetPort: 24000 targetPort: 24000
protocol: HTTP
route: route:
main: main:
kind: HTTPRoute kind: HTTPRoute
@@ -128,11 +125,8 @@ tubearchivist:
- tubearchivist.alexlebens.net - tubearchivist.alexlebens.net
rules: rules:
- backendRefs: - backendRefs:
- group: '' - name: tubearchivist
kind: Service
name: tubearchivist
port: 80 port: 80
weight: 100
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@@ -142,7 +136,6 @@ tubearchivist:
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 40Gi size: 40Gi
retain: true
advancedMounts: advancedMounts:
main: main:
main: main:
@@ -157,10 +150,6 @@ tubearchivist:
readOnly: false readOnly: false
valkey: valkey:
valkey: valkey:
resources:
requests:
cpu: 100m
memory: 1Gi
dataStorage: dataStorage:
requestedSize: 10Gi requestedSize: 10Gi
replica: replica: