Refactor Traefik Helm values for compatibility and clarity

This commit is contained in:
Nik Afiq 2026-03-05 19:10:47 +09:00
parent f33fdc4044
commit 7155d0c3a1

View File

@ -1,3 +1,4 @@
# Traefik Helm values — compatible with Traefik chart v34+ (Traefik v3)
# Traefik Helm values — Phase 1 # Traefik Helm values — Phase 1
# Chart: traefik/traefik # Chart: traefik/traefik
# Deploy: # Deploy:
@ -6,59 +7,10 @@
# helm upgrade --install traefik traefik/traefik \ # helm upgrade --install traefik traefik/traefik \
# --namespace traefik --create-namespace \ # --namespace traefik --create-namespace \
# -f values/traefik.yml # -f values/traefik.yml
# Minimal Traefik v3 / chart v39 compatible values
globalArguments:
- "--global.checknewversion=false"
- "--global.sendanonymoususage=false"
additionalArguments:
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencrypt.acme.email=nik@nik4nao.xyz"
- "--certificatesresolvers.letsencrypt.acme.storage=/data/traefik/acme.json"
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
ingressClass:
enabled: true
isDefaultIngressClass: true
service:
type: LoadBalancer
# K3s includes ServiceLB (klipper) — it will bind this to the node's IP automatically
persistence:
enabled: false
existingClaim: ""
storageClass: ""
path: /data/traefik
size: 128Mi
accessMode: ReadWriteOnce
volumes:
- name: traefik-data
hostPath:
path: /data/traefik
type: DirectoryOrCreate
volumeMounts:
- name: traefik-data
mountPath: /data/traefik
deployment: deployment:
replicas: 1 replicas: 1
# Pin to Minisforum (primary node)
# Remove this section in Phase 2 once you have a multi-node cluster
# and only want Traefik on the server node
affinity: affinity:
nodeAffinity: nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution: requiredDuringSchedulingIgnoredDuringExecution:
@ -69,20 +21,42 @@ deployment:
values: values:
- primary - primary
dashboard: ingressClass:
enabled: true enabled: true
# Accessible internally at http://traefik.192.168.7.7.nip.io or via IngressRoute isDefaultClass: true
# Do NOT expose the dashboard externally
ingressRoute: ports:
dashboard: web:
enabled: true port: 8000
matchRule: Host(`traefik.home.arpa`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`)) exposedPort: 80
entryPoints: http:
- websecure redirections:
# Add BasicAuth middleware here if you want dashboard password protection entryPoint:
to: websecure
scheme: https
permanent: true
websecure:
port: 8443
exposedPort: 443
service:
type: LoadBalancer
additionalArguments:
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencrypt.acme.email=nik.afiq98@ymail.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/data/traefik/acme.json"
volumes:
- name: traefik-data
hostPath:
path: /data/traefik
type: DirectoryOrCreate
mountPath: /data/traefik
logs: logs:
general: general:
level: INFO level: INFO
access: access:
enabled: true enabled: true