# k3s Traefik customisation (HelmChartConfig for the built-in `traefik` chart). # # Apply with: kubectl apply -f deploy/k3s/traefik-helmchartconfig.yaml # # Why: Traefik's entrypoint `readTimeout` defaults to 60s and covers reading the # *entire request including the body*. Admin video uploads (up to 200MB) that take # longer than 60s were cut off with a 502 before reaching the backend. Raise it to # 1 hour (use 0 to disable entirely). apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: traefik namespace: kube-system spec: failurePolicy: reinstall valuesContent: |- # ACCESSLOG tile -> ON; access logs go to container stdout (kubectl logs). # Key is logs.access.enabled on the chart k3s ships (40.1.5); # the top-level accessLog.enabled only exists on newer chart versions. logs: access: enabled: true # Allow IngressRoutes to reference Services living in other namespaces, # e.g. argocd-server in `argocd`. providers: kubernetesCRD: allowCrossNamespace: true deployment: podAnnotations: # fix: metrics entrypoint listens on :9100, annotation said 8082 prometheus.io/port: "9100" prometheus.io/scrape: "true" # Allow slow, large uploads (admin video upload ≤ 200MB) to finish. # Default is 60s; 3600s = 1h. Set to 0 to disable the cap. ports: web: transport: respondingTimeouts: readTimeout: 3600 websecure: transport: respondingTimeouts: readTimeout: 3600