traefik-helmchartconfig.yaml 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. apiVersion: helm.cattle.io/v1
  2. kind: HelmChartConfig
  3. metadata:
  4. name: traefik
  5. namespace: kube-system
  6. spec:
  7. valuesContent: |-
  8. ports:
  9. web:
  10. exposedPort: 8080
  11. websecure:
  12. exposedPort: 8443
  13. additionalArguments:
  14. - "--entrypoints.websecure.proxyProtocol.trustedIPs=127.0.0.1/32,10.0.0.0/24"
  15. - "--entrypoints.web.http.redirections.entryPoint.to=:8443"
  16. - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
  17. - "--entrypoints.websecure.transport.respondingTimeouts.readTimeout=0s"
  18. # Auto cert renewal via cloudflare
  19. - "--certificatesresolvers.letsencrypt.acme.email=joshbicking@comcast.net"
  20. - "--certificatesresolvers.letsencrypt.acme.storage=/data/acme.json"
  21. - "--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare"
  22. - "--certificatesresolvers.letsencrypt.acme.dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53"
  23. - "--entrypoints.websecure.http.tls.certResolver=letsencrypt"
  24. # Main
  25. - "--entrypoints.websecure.http.tls.domains[0].main=bnuuy.org"
  26. - "--entrypoints.websecure.http.tls.domains[0].sans=*.bnuuy.org"
  27. # LAN-only
  28. - "--entrypoints.websecure.http.tls.domains[1].main=lan.bnuuy.org"
  29. - "--entrypoints.websecure.http.tls.domains[1].sans=*.lan.bnuuy.org"
  30. # debug, uncomment for testing
  31. # - "--log.level=DEBUG"
  32. # - "--certificatesresolvers.letsencrypt.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory"
  33. env:
  34. - name: CLOUDFLARE_EMAIL
  35. valueFrom:
  36. secretKeyRef:
  37. name: cloudflare-secrets
  38. key: email
  39. optional: false
  40. - name: CLOUDFLARE_API_KEY
  41. valueFrom:
  42. secretKeyRef:
  43. name: cloudflare-secrets
  44. key: api-key
  45. optional: false
  46. persistence:
  47. enabled: true
  48. storageClass: local-path
  49. # Fix for acme.json file being changed to 660 from 600
  50. # This can manifest as the incredibly unhelpful "the router <router name> uses a non-existent resolver: <resolver name>"
  51. # https://github.com/traefik/traefik/issues/10241
  52. podSecurityContext:
  53. fsGroup: 65532
  54. deployment:
  55. initContainers:
  56. # The "volume-permissions" init container is required if you run into permission issues.
  57. # Related issue: https://github.com/traefik/traefik-helm-chart/issues/396
  58. - name: volume-permissions
  59. image: busybox:latest
  60. command: ["sh", "-c", "touch /data/acme.json; chmod -v 600 /data/acme.json"]
  61. securityContext:
  62. runAsNonRoot: true
  63. runAsGroup: 65532
  64. runAsUser: 65532
  65. volumeMounts:
  66. - name: data
  67. mountPath: /data
  68. service:
  69. spec:
  70. externalTrafficPolicy: Local
  71. providers:
  72. kubernetesCRD:
  73. # Allows IngressRoutes to use middleware from a different namespace
  74. allowCrossNamespace: true