DirectorySecurity AdvisoriesPricing
Sign in
Directory
traefik logoHELM

traefik

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# Default values for Traefik
2
# This is a YAML-formatted file.
3
# Declare variables to be passed into templates
4
5
image: # @schema additionalProperties: false
6
# -- Traefik image host registry. Defaults to `docker.io` for Traefik Proxy and `ghcr.io` for Traefik Hub (when `hub.enabled` is true).
7
registry: cgr.dev # @schema type:[string, null]
8
# -- Traefik image repository. Defaults to `traefik` for Traefik Proxy and `traefik/traefik-hub` for Traefik Hub (when `hub.enabled` is true).
9
repository: chainguard-private/traefik # @schema type:[string, null]
10
# -- defaults to appVersion. It's used for version checking, even prefixed with experimental- or latest-.
11
# To pin by digest, prefer `image.digest`. A `<version>@<digest>` combo is also accepted here; in that case the digest is what Kubernetes verifies and the version is informational (and can drift from the underlying image).
12
tag: 3.7.16-r4@sha256:cf8ce2be806d62615f49bf41bf4ac5003547ebf5cb5138a602306987055873d8 # @schema type:[string, null]
13
# -- Traefik image digest (e.g. `sha256:abc...`). When set, takes precedence over `tag`. Set `versionOverride` alongside it so the chart's version-checking logic knows the version (it cannot be derived from the digest).
14
digest: # @schema type:[string, null]; pattern:^sha256:[a-f0-9]{64}$
15
# -- Traefik image pull policy
16
pullPolicy: IfNotPresent
17
# -- Pull secrets for fetching traefik container image when `deployment.imagePullSecrets` is empty
18
imagePullSecrets: []
19
# -- Add additional label to all resources
20
commonLabels: {}
21
deployment:
22
# -- Enable deployment
23
enabled: true
24
# -- Deployment or DaemonSet
25
kind: Deployment
26
# -- Number of pods of the deployment (only applies when kind == Deployment).
27
# Set to null to omit spec.replicas, e.g. when an external controller (HPA/KEDA) owns scaling.
28
replicas: 1 # @schema type:[integer, null];minimum:0
29
# -- (int) Number of old history to retain to allow rollback (If not set, default Kubernetes value is set to 10)
30
revisionHistoryLimit: # @schema type:[integer, null];minimum:0
31
# -- Amount of time (in seconds) before Kubernetes will send the SIGKILL signal if Traefik does not shut down
32
terminationGracePeriodSeconds: 60
33
# -- The minimum number of seconds Traefik needs to be up and running before the DaemonSet/Deployment controller considers it available
34
minReadySeconds: 0
35
# -- (string/int) Override the liveness/readiness port. This is useful to integrate traefik
36
# with an external Load Balancer that performs healthchecks.
37
# @default -- `ports.traefik.port`
38
healthchecksPort: # @schema type:[string, integer, null]; minimum:0
39
# -- Override the liveness/readiness host. Useful for getting ping to respond on non-default entryPoint.
40
# @default -- `ports.traefik.hostIP` if set, otherwise Pod IP
41
healthchecksHost: ""
42
# -- Override the liveness/readiness scheme. Useful for getting ping to
43
# respond on websecure entryPoint.
44
healthchecksScheme: # @schema enum:[HTTP, HTTPS, null]; type:[string, null]; default: HTTP
45
# -- Override the readiness path.
46
# @default -- `/ping`
47
readinessPath: ""
48
# -- Override the liveness path.
49
# @default -- `/ping`
50
livenessPath: ""
51
# -- Additional deployment annotations (e.g. for jaeger-operator sidecar injection)
52
annotations: {}
53
# -- Additional deployment labels (e.g. for filtering deployment by custom labels)
54
labels: {}
55
# -- Additional pod annotations (e.g. for mesh injection or prometheus scraping)
56
# It supports templating. One can set it with values like traefik/name: '{{ template "traefik.name" . }}'
57
podAnnotations: {}
58
# -- Additional Pod labels (e.g. for filtering Pod by custom labels)
59
# It supports templating. One can set it with values like traefik/name: '{{ template "traefik.name" . }}'
60
podLabels: {}
61
# -- Additional containers (e.g. for metric offloading sidecars)
62
additionalContainers: []
63
# https://docs.datadoghq.com/developers/dogstatsd/unix_socket/?tab=host
64
# - name: socat-proxy
65
# image: alpine/socat:1.0.5
66
# args: ["-s", "-u", "udp-recv:8125", "unix-sendto:/socket/socket"]
67
# volumeMounts:
68
# - name: dsdsocket
69
# mountPath: /socket
70
# -- Additional volumes available for use with initContainers and additionalContainers
71
additionalVolumes: []
72
# - name: dsdsocket
73
# hostPath:
74
# path: /var/run/statsd-exporter
75
# -- Additional initContainers (e.g. for setting file permission as shown below)
76
initContainers: []
77
# The "volume-permissions" init container is required if you run into permission issues.
78
# Related issue: https://github.com/traefik/traefik-helm-chart/issues/396
79
# - name: volume-permissions
80
# image: busybox:latest
81
# command: ["sh", "-c", "touch /data/acme.json; chmod -v 600 /data/acme.json"]
82
# volumeMounts:
83
# - name: data
84
# mountPath: /data
85
# -- Use process namespace sharing
86
shareProcessNamespace: false
87
# -- (bool) Whether to use the host user namespace. Setting this to false enables user namespaces,
88
# which can improve security by isolating the pod's users from the host.
89
# See https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/
90
# @default -- unset (inherits cluster default)
91
hostUsers: # @schema type:[boolean, null]
92
# -- Custom pod DNS policy. Apply if `hostNetwork: true`
93
dnsPolicy: ""
94
# -- Custom pod [DNS config](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)
95
dnsConfig: {}
96
# -- Custom [host aliases](https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/)
97
hostAliases: []
98
# -- Pull secrets for fetching traefik container image. Takes precedence over `imagePullSecrets` and `global.imagePullSecrets`
99
imagePullSecrets: []
100
# -- Pod lifecycle actions
101
lifecycle: {}
102
# preStop:
103
# sleep:
104
# seconds: 20
105
# postStart:
106
# httpGet:
107
# path: /ping
108
# port: 8080
109
# host: localhost
110
# scheme: HTTP
111
# -- Set a runtimeClassName on pod
112
runtimeClassName: ""
113
# -- Percentage of memory limit to set for GOMEMLIMIT, set as decimal (0.9 = 90%, 0.95 = 95% etc). Only takes effect when resources.limits.memory is set. Set to 0 to disable (e.g. when using VPA or setting it via env)
114
goMemLimitPercentage: 0.9
115
tmpVolume:
116
# -- [EmptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) options for the tmp volume.
117
emptyDir: {}
118
# -- [Pod Disruption Budget](https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1/)
119
# @default -- See _values.yaml_
120
podDisruptionBudget: # @schema additionalProperties: false
121
enabled: false
122
maxUnavailable: # @schema type:[string, integer, null];minimum:0
123
minAvailable: # @schema type:[string, integer, null];minimum:0
124
ingressClass: # @schema additionalProperties: false
125
# -- Create a default IngressClass for Traefik
126
enabled: true
127
isDefaultClass: true
128
name: ""
129
core: # @schema additionalProperties: false
130
# -- Can be used to use globally v2 router syntax. Deprecated since v3.4 /!\.
131
# See https://doc.traefik.io/traefik/v3.0/migration/v2-to-v3/#new-v3-syntax-notable-changes
132
defaultRuleSyntax: ""
133
# -- Disables the unsafe fallback to default TLS options on conflict, mitigating [GHSA-g55h-rg46-x9c5](https://github.com/traefik/traefik/security/advisories/GHSA-g55h-rg46-x9c5). Requires traefik v3.7.11+.
134
strictTLSOptions: false
135
# Traefik experimental features
136
experimental:
137
# -- Defines whether all plugins must be loaded successfully for Traefik to start
138
abortOnPluginFailure: false
139
fastProxy:
140
# -- Enables the FastProxy implementation.
141
enabled: false
142
# -- Enable debug mode for the FastProxy implementation.
143
debug: false
144
kubernetesGateway:
145
# -- Enable traefik experimental GatewayClass CRD
146
enabled: false
147
# -- Enable experimental plugins
148
plugins: {}
149
# -- Enable experimental local plugins
150
localPlugins: {}
151
# -- Enable OTLP logging experimental feature.
152
otlpLogs: false
153
# -- Enable Knative provider experimental feature.
154
knative: false
155
gateway:
156
# -- When providers.kubernetesGateway.enabled, deploy a default gateway
157
enabled: true
158
# -- Set a custom name to gateway
159
name: ""
160
# -- By default, Gateway is created in the same `Namespace` as Traefik.
161
namespace: ""
162
# -- Additional gateway annotations (e.g. for cert-manager.io/issuer)
163
annotations: {}
164
# -- [Infrastructure](https://kubernetes.io/blog/2023/11/28/gateway-api-ga/#gateway-infrastructure-labels)
165
infrastructure: {}
166
# -- Configure this Gateway as a [Default Gateway](https://kubernetes.io/blog/2025/11/06/gateway-api-v1-4/#introducing-default-gateways)
167
# by setting the `defaultScope` field (e.g. `All` or `Namespace`).
168
defaultScope: null # @schema enum:["All", "None", null]; type:[string, null]; default: null
169
listeners:
170
web:
171
# -- Port is the network port. Multiple listeners may use the same port, subject to the Listener compatibility rules.
172
# The port must match a port declared in ports section.
173
port: 8000
174
# -- Optional hostname. See [Hostname](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#hostname)
175
hostname: ""
176
# Specify expected protocol on this listener. See [ProtocolType](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#protocoltype)
177
protocol: HTTP
178
# -- (object) Routes are restricted to namespace of the gateway [by default](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#fromnamespaces)
179
namespacePolicy: # @schema type:[object, null]
180
# websecure listener is disabled by default because certificateRefs needs to be added,
181
# or you may specify TLS protocol with Passthrough mode and add "--providers.kubernetesGateway.experimentalChannel=true" in additionalArguments section.
182
# websecure:
183
# # -- Port is the network port. Multiple listeners may use the same port, subject to the Listener compatibility rules.
184
# # The port must match a port declared in ports section.
185
# port: 8443
186
# # -- Optional hostname. See [Hostname](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#hostname)
187
# hostname:
188
# # Specify expected protocol on this listener See [ProtocolType](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#protocoltype)
189
# protocol: HTTPS
190
# # -- Routes are restricted to namespace of the gateway [by default](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#fromnamespaces)
191
# namespacePolicy:
192
# # -- Add certificates for TLS or HTTPS protocols. See [GatewayTLSConfig](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#gatewaytlsconfig)
193
# certificateRefs:
194
# # -- TLS behavior for the TLS session initiated by the client. See [TLSModeType](https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/#tlsmodetype).
195
# mode:
196
gatewayClass: # @schema additionalProperties: false
197
# -- When providers.kubernetesGateway.enabled and gateway.enabled, deploy a default gatewayClass
198
enabled: true
199
# -- Set a custom name to GatewayClass
200
name: ""
201
# -- Additional gatewayClass labels (e.g. for filtering gateway objects by custom labels)
202
labels: {}
203
api: # @schema additionalProperties: false
204
# -- Enable the dashboard
205
dashboard: true
206
# -- Custom name for the dashboard (v3.7+).
207
dashboardName: "" # @schema type:[string, null]
208
# -- (bool) Disable the advertisement from the dashboard.
209
disableDashboardAd: # @schema type:[boolean, null]
210
# -- (bool) Enable the insecure API (HTTP)
211
insecure: # @schema type:[boolean, null]
212
# -- (bool) Enable the debug API
213
debug: # @schema type:[boolean, null]
214
# -- Configure API basePath
215
basePath: "" # @schema type:[string, null]; default: "/"
216
# -- Only dashboard & healthcheck IngressRoute are supported.
217
# It's recommended to create workloads CR outside of this Chart.
218
# @default -- See _values.yaml_
219
ingressRoute:
220
dashboard:
221
# -- Create an IngressRoute for the dashboard
222
enabled: false
223
# -- Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class)
224
annotations: {}
225
# -- Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels)
226
labels: {}
227
# -- The router match rule used for the dashboard ingressRoute
228
matchRule: PathPrefix(`/dashboard`) || PathPrefix(`/api`)
229
# -- The internal service used for the dashboard ingressRoute
230
# @default -- api@internal
231
services:
232
- name: api@internal
233
kind: TraefikService
234
# -- Specify the allowed entrypoints to use for the dashboard ingress route, (e.g. traefik, web, websecure).
235
# By default, it's using traefik entrypoint, which is not exposed.
236
# /!\ Do not expose your dashboard without any protection over the internet /!\
237
entryPoints: ["traefik"]
238
# -- Additional ingressRoute middlewares (e.g. for authentication)
239
middlewares: []
240
# -- TLS options (e.g. secret containing certificate)
241
tls: {}
242
healthcheck:
243
# -- Create an IngressRoute for the healthcheck probe
244
enabled: false
245
# -- Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class)
246
annotations: {}
247
# -- Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels)
248
labels: {}
249
# -- The router match rule used for the healthcheck ingressRoute
250
matchRule: PathPrefix(`/ping`)
251
# -- The internal service used for the healthcheck ingressRoute
252
# @default -- ping@internal
253
services:
254
- name: ping@internal
255
kind: TraefikService
256
# -- Specify the allowed entrypoints to use for the healthcheck ingress route, (e.g. traefik, web, websecure).
257
# By default, it's using traefik entrypoint, which is not exposed.
258
entryPoints: ["traefik"]
259
# -- Additional ingressRoute middlewares (e.g. for authentication)
260
middlewares: []
261
# -- TLS options (e.g. secret containing certificate)
262
tls: {}
263
updateStrategy: # @schema additionalProperties: false
264
# -- Customize updateStrategy of Deployment or DaemonSet
265
type: RollingUpdate
266
rollingUpdate:
267
maxUnavailable: 0 # @schema type:[integer, string, null]
268
maxSurge: 1 # @schema type:[integer, string, null]
269
readinessProbe: # @schema additionalProperties: false
270
# -- The number of consecutive failures allowed before considering the probe as failed.
271
failureThreshold: 1
272
# -- The number of seconds to wait before starting the first probe.
273
initialDelaySeconds: 2
274
# -- The number of seconds to wait between consecutive probes.
275
periodSeconds: 10
276
# -- The minimum consecutive successes required to consider the probe successful.
277
successThreshold: 1
278
# -- The number of seconds to wait for a probe response before considering it as failed.
279
timeoutSeconds: 2
280
livenessProbe: # @schema additionalProperties: false
281
# -- The number of consecutive failures allowed before considering the probe as failed.
282
failureThreshold: 3
283
# -- The number of seconds to wait before starting the first probe.
284
initialDelaySeconds: 2
285
# -- The number of seconds to wait between consecutive probes.
286
periodSeconds: 10
287
# -- The minimum consecutive successes required to consider the probe successful.
288
successThreshold: 1
289
# -- The number of seconds to wait for a probe response before considering it as failed.
290
timeoutSeconds: 2
291
# -- Define [Startup Probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes)
292
startupProbe: {}
293
# @schema additionalProperties: false
294
providers:
295
# -- Defines the routing precedence between providers. See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/providers/overview/#routing-precedence) for the default order.
296
precedence: []
297
# @schema additionalProperties: false
298
kubernetesCRD:
299
# -- Load Kubernetes IngressRoute provider
300
enabled: true
301
# -- Allows IngressRoute to reference resources in namespace other than theirs
302
allowCrossNamespace: false
303
# -- Allows to reference ExternalName services in IngressRoute
304
allowExternalNameServices: false
305
# -- Allows to return 503 when there are no endpoints available
306
allowEmptyServices: true
307
# -- List of namespaces from which IngressRoute, IngressRouteTCP, IngressRouteUDP, and TraefikService are allowed to declare cross-provider references. Requires traefik v3.7.1+.
308
crossProviderNamespaces: []
309
# -- Restricts the namespace where the cluster-wide TLSOption and TLSStore named `default` can be defined. When empty, any namespace is allowed. Requires traefik v3.7.11+.
310
defaultTLSResourcesNamespace: ""
311
# -- When the parameter is set, only resources containing an annotation with the same value are processed. Otherwise, resources missing the annotation, having an empty value, or the value traefik are processed. It will also set required annotation on Dashboard and Healthcheck IngressRoute when enabled.
312
ingressClass: ""
313
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/providers/kubernetes/kubernetes-ingress/#opt-providers-kubernetesIngress-labelselector)
314
labelSelector: ""
315
# -- Array of namespaces to watch. If left empty, Traefik watches all namespaces. . When using `rbac.namespaced`, it will watch helm release namespace and namespaces listed in this array.
316
namespaces: []
317
# -- Defines whether to use Native Kubernetes load-balancing mode by default.
318
nativeLBByDefault: false
319
# -- Enables collision-safe naming. ⚠️ It can be breaking, see [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/providers/kubernetes/kubernetes-crd/#safenaming). Requires traefik v3.7.11+.
320
safeNaming: false
321
# @schema additionalProperties: false
322
kubernetesIngress:
323
# -- Load Kubernetes Ingress provider
324
enabled: true
325
# -- Allows to reference ExternalName services in Ingress
326
allowExternalNameServices: false
327
# -- Allows to return 503 when there are no endpoints available
328
allowEmptyServices: true
329
# -- List of namespaces from which Ingresses or Services are allowed to declare Middlewares, TLSOptions, or ServersTransport references. Requires traefik v3.7.1+.
330
crossProviderNamespaces: []
331
# -- Only for Traefik v3.0, Deprecated since v3.1. See [upstream documentation](https://doc.traefik.io/traefik/v3.0/providers/kubernetes-ingress/#disableingressclasslookup)
332
disableIngressClassLookup: false
333
# -- When ingressClass is set, only Ingresses containing an annotation with the same value are processed. Otherwise, Ingresses missing the annotation, having an empty value, or the value traefik are processed.
334
ingressClass: # @schema type:[string, null]
335
labelSelector: # @schema type:[string, null]
336
# -- Array of namespaces to watch. If left empty, Traefik watches all namespaces. . When using `rbac.namespaced`, it will watch helm release namespace and namespaces listed in this array.
337
namespaces: []
338
# IP used for Kubernetes Ingress endpoints
339
publishedService:
340
# -- Enable [publishedService](https://doc.traefik.io/traefik/reference/install-configuration/providers/kubernetes/kubernetes-ingress/#ingressendpointpublishedservice),
341
# usually with the Service provided by this Chart. It's possible to use it with an external Service using pathOverride.
342
enabled: true
343
# -- Override path of Kubernetes Service used to copy status from. Format: namespace/servicename.
344
# Default to Service deployed with this Chart.
345
pathOverride: ""
346
# @schema additionalProperties: false
347
ingressEndpoint:
348
# -- Hostname used for Kubernetes Ingress endpoints
349
hostname: "" # @schema type:[string, null]
350
# -- IP used for Kubernetes Ingress endpoints
351
ip: "" # @schema type:[string, null]
352
# -- Defines whether to use Native Kubernetes load-balancing mode by default.
353
nativeLBByDefault: false
354
# -- Defines whether to make prefix matching strictly comply with the Kubernetes Ingress specification.
355
strictPrefixMatching: false
356
# @schema additionalProperties: false
357
kubernetesGateway:
358
# -- Enable Traefik Gateway provider for Gateway API
359
enabled: false
360
# -- List of namespaces from which Gateway API routes are allowed to declare TraefikService backendRef references. Requires traefik v3.7.1+.
361
crossProviderNamespaces: []
362
# -- Toggles support for the Experimental Channel resources (Gateway API release channels documentation).
363
# This option currently enables support for TCPRoute and TLSRoute.
364
experimentalChannel: false
365
# -- Array of namespaces to watch. If left empty, Traefik watches all namespaces. kubernetesGateway provider requires ClusterRole and as a consequence `rbac.namespaced` is not supported.
366
namespaces: []
367
# -- A label selector can be defined to filter on specific GatewayClass objects only.
368
labelSelector: ""
369
# -- Scopes the provider to specific Gateways, as a list of `name` and `namespace` (defaults to the release namespace) (v3.7.14+).
370
# If left empty, Traefik processes all Gateways.
371
gateways: []
372
# -- Defines whether to use Native Kubernetes load-balancing mode by default.
373
nativeLBByDefault: false
374
# -- (int) Maximum QPS to the Kubernetes API server. A negative value disables client-side ratelimiting (v3.7.3+). Defaults to 50.
375
qps: # @schema type:[integer, null]
376
# -- (int) Maximum burst of requests to the Kubernetes API server (v3.7.3+). Defaults to 100.
377
burst: # @schema type:[integer, null]
378
statusAddress:
379
# -- This IP will get copied to the Gateway status.addresses, and currently only supports one IP value (IPv4 or IPv6).
380
ip: ""
381
# -- This Hostname will get copied to the Gateway status.addresses.
382
hostname: ""
383
service:
384
# -- The Kubernetes service to copy status addresses from. When using third parties tools like External-DNS, this option can be used to copy the service loadbalancer.status (containing the service's endpoints IPs) to the gateways. Default to Service of this Chart.
385
enabled: true
386
name: ""
387
namespace: ""
388
# @schema additionalProperties: false
389
file:
390
# -- Create a file provider
391
enabled: false
392
# -- Allows Traefik to automatically watch for file changes
393
watch: true
394
# -- File content as an object (will be YAML-formatted, go template supported) (see https://doc.traefik.io/traefik/reference/install-configuration/providers/others/file/)
395
content: {}
396
# @schema additionalProperties: false
397
kubernetesIngressNGINX:
398
# -- Enable Kubernetes Ingress NGINX provider
399
enabled: false
400
# -- Ingress Class Controller value this controller satisfies
401
controllerClass: "k8s.io/ingress-nginx"
402
# -- Name of the ingress class this controller satisfies
403
ingressClass: "nginx"
404
# -- Define if Ingress Controller should watch for Ingress Class by Name together with Controller Class
405
ingressClassByName: false
406
# -- Define if Ingress Controller should also watch for Ingresses without an IngressClass or the annotation specified
407
watchIngressWithoutClass: false
408
# -- Single namespace the controller watches for updates to Kubernetes objects. Mutually exclusive with watchNamespaceSelector.
409
watchNamespace: ""
410
# -- Select namespaces the controller watches for updates to Kubernetes objects. Mutually exclusive with watchNamespace.
411
# It requires a ClusterRole to list and watch namespaces, and is therefore incompatible with `rbac.namespaced`.
412
watchNamespaceSelector: ""
413
publishService:
414
# -- Enable publishService. Service fronting the Ingress controller, used to set the load-balancer status of Ingress objects.
415
# Usually the Service provided by this Chart. It's possible to use it with an external Service using pathOverride.
416
enabled: false
417
# -- Override path of Kubernetes Service used to copy status from. Format: namespace/servicename.
418
# Default to Service deployed with this Chart.
419
pathOverride: ""
420
# -- Customized address (or addresses, separated by comma) to set as the load-balancer status of Ingress objects this controller satisfies
421
publishStatusAddress: ""
422
# -- Service used to serve HTTP requests not matching any known server name (catch-all). Takes the form 'namespace/name'
423
defaultBackendService: ""
424
# -- Disable support for Services of type ExternalName
425
disableSvcExternalName: false
426
# -- Ingress refresh throttle duration
427
throttleDuration: ""
428
# -- Kubernetes certificate authority file path (not needed for in-cluster client)
429
certAuthFilePath: ""
430
# -- Kubernetes server endpoint (required for external cluster client)
431
endpoint: ""
432
# -- Kubernetes bearer token (not needed for in-cluster client). It accepts either a token value or a file path to the token
433
token: ""
434
# -- (bool) Defines whether to enable request buffering (default: false)
435
proxyRequestBuffering: null # @schema type:[boolean, null]
436
# -- (int) Default buffer size for reading client request body in bytes (default: 16384)
437
clientBodyBufferSize: # @schema type:[integer, null]
438
# -- (int) Default maximum size of a client request body in bytes (default: 1048576)
439
proxyBodySize: # @schema type:[integer, null]
440
# -- (bool) Defines whether to enable response buffering (default: false)
441
proxyBuffering: null # @schema type:[boolean, null]
442
# -- (int) Default buffer size for reading the response body in bytes (default: 8192)
443
proxyBufferSize: # @schema type:[integer, null]
444
# -- (int) Default number of buffers for reading a response (default: 4)
445
proxyBuffersNumber: # @schema type:[integer, null]
446
# -- (int) Amount of time to wait until a connection to a server can be established. Unitless, in seconds (default: 60)
447
proxyConnectTimeout: # @schema type:[integer, null]
448
# -- (int) Amount of time between two successive read operations. Unitless, in seconds (default: 60)
449
proxyReadTimeout: # @schema type:[integer, null]
450
# -- (int) Amount of time between two successive write operations. Unitless, in seconds (default: 60)
451
proxySendTimeout: # @schema type:[integer, null]
452
# -- Defines in which cases a request should be retried (default: "error timeout")
453
proxyNextUpstream: ""
454
# -- (int) Limits the number of possible tries if the backend server does not reply (default: 3)
455
proxyNextUpstreamTries: # @schema type:[integer, null]
456
# -- (int) Limits the total elapsed time to retry the request. Unitless, in seconds (default: 0)
457
proxyNextUpstreamTimeout: # @schema type:[integer, null]
458
# -- Defines which HTTP status codes should result in calling the default backend to return an error page
459
customHTTPErrors: []
460
# -- (int) Defines the idle timeout for keep-alive connections to upstream servers. Unitless, in seconds (default: 60)
461
upstreamKeepaliveTimeout: # @schema type:[integer, null]
462
# -- (bool) Allow Ingress to reference resources (e.g. ConfigMaps, Secrets) in different namespaces (default: false)
463
allowCrossNamespaceResources: null # @schema type:[boolean, null]
464
# -- List of allowed response headers inside the custom headers annotations
465
globalAllowedResponseHeaders: []
466
# -- URL to the service that provides authentication for all the locations. Per ingress auth-url annotation has precedence over this option.
467
globalAuthUrl: ""
468
# -- When set, the strategy is applied to every generated IPAllowList middleware.
469
# @default -- See below
470
ipAllowListStrategy:
471
# -- Number of trusted proxy hops to skip when extracting the client IP from the X-Forwarded-For header. 0 disables depth-based extraction. (default: 0)
472
depth: 0
473
# -- List of IPs to exclude when scanning the X-Forwarded-For header to find the client IP.
474
excludedIPS: []
475
# -- IPv6 subnet size used to group IPv6 addresses when checking the allow list. 0 disables subnet grouping.
476
ipv6Subnet: 0
477
# -- (bool) Enables parsing and adding -snippet annotations/directives (default: false)
478
allowSnippetAnnotations: null # @schema type:[boolean, null]
479
# -- (bool) Defines whether to reject the entire ingress when any path contains regex characters and pathType is Prefix or Exact (default: true)
480
strictValidatePathType: null # @schema type:[boolean, null]
481
# -- Defines the EntryPoint to use for HTTP requests
482
httpEntryPoint: "web"
483
# -- Defines the EntryPoint to use for HTTPS requests
484
httpsEntryPoint: "websecure"
485
# @schema additionalProperties: false
486
modsec:
487
# -- Enable ModSec engine. Requires Traefik Hub >= v3.20.0-ea.8.
488
enabled: false
489
# -- Enable OWASP Core Rules.
490
owaspCoreRules: false
491
# -- Custom ModSec rules snippet.
492
snippet: ""
493
# @schema additionalProperties: false
494
knative:
495
# -- Enable Knative provider
496
enabled: false
497
# -- Array of namespaces to watch. If left empty, Traefik watches all namespaces. . When using `rbac.namespaced`, it will watch helm release namespace and namespaces listed in this array.
498
namespaces: []
499
# -- Allow filtering Knative Ingress objects
500
labelSelector: ""
501
# -- Add volumes to the traefik pod. The volume name will be passed to tpl.
502
# This can be used to mount a cert pair or a configmap that holds a config.toml file.
503
# After the volume has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg:
504
# `additionalArguments:
505
# - "--providers.file.filename=/config/dynamic.toml"
506
# - "--ping"
507
# - "--ping.entrypoint=web"`
508
volumes: []
509
# - name: public-cert
510
# mountPath: "/certs"
511
# type: secret
512
# - name: '{{ printf "%s-configs" .Release.Name }}'
513
# mountPath: "/config"
514
# type: configMap
515
516
# -- Additional volumeMounts to add to the Traefik container
517
additionalVolumeMounts: []
518
# -- For instance when using a logshipper for access logs
519
# - name: traefik-logs
520
# mountPath: /var/log/traefik
521
522
# -- See [logs reference](https://doc.traefik.io/traefik/reference/install-configuration/observability/logs-and-accesslogs/)
523
log:
524
# -- Set [logs format](https://doc.traefik.io/traefik/reference/install-configuration/observability/logs-and-accesslogs/#opt-log-format)
525
format: # @schema enum:["common", "json", null]; type:[string, null]; default: "common"
526
# By default, the level is set to INFO.
527
# -- Alternative logging levels are TRACE, DEBUG, INFO, WARN, ERROR, FATAL, and PANIC.
528
level: "INFO" # @schema enum:[TRACE,DEBUG,INFO,WARN,ERROR,FATAL,PANIC]; default: "INFO"
529
# -- To write the logs into a log file, use the filePath option.
530
filePath: ""
531
# -- When set to true and format is common, it disables the colorized output.
532
noColor: false
533
otlp:
534
# -- Set to true in order to enable OpenTelemetry on logs. Note that experimental.otlpLogs needs to be enabled.
535
enabled: false
536
# -- Service name used in OTLP backend. Default: traefik.
537
serviceName: # @schema type:[string, null]
538
http:
539
# -- Set to true in order to send logs to the OpenTelemetry Collector using HTTP.
540
enabled: false
541
# -- Format: <scheme>://<host>:<port><path>. Default: https://localhost:4318/v1/logs
542
endpoint: ""
543
# -- Additional headers sent with logs by the reporter to the OpenTelemetry Collector.
544
headers: {}
545
## Defines the TLS configuration used by the reporter to send logs to the OpenTelemetry Collector.
546
tls:
547
# -- The path to the certificate authority, it defaults to the system bundle.
548
ca: ""
549
# -- The path to the public certificate. When using this option, setting the key option is required.
550
cert: ""
551
# -- The path to the private key. When using this option, setting the cert option is required.
552
key: ""
553
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
554
insecureSkipVerify: # @schema type:[boolean, null]
555
grpc:
556
# -- Set to true in order to send logs to the OpenTelemetry Collector using gRPC
557
enabled: false
558
# -- Format: <host>:<port>. Default: "localhost:4317"
559
endpoint: ""
560
# -- Allows reporter to send logs to the OpenTelemetry Collector without using a secured protocol.
561
insecure: false
562
## Defines the TLS configuration used by the reporter to send logs to the OpenTelemetry Collector.
563
tls:
564
# -- The path to the certificate authority, it defaults to the system bundle.
565
ca: ""
566
# -- The path to the public certificate. When using this option, setting the key option is required.
567
cert: ""
568
# -- The path to the private key. When using this option, setting the cert option is required.
569
key: ""
570
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
571
insecureSkipVerify: # @schema type:[boolean, null]
572
# -- Defines additional resource attributes to be sent to the collector.
573
resourceAttributes: {}
574
# -- See [access logs reference](https://doc.traefik.io/traefik/reference/install-configuration/observability/logs-and-accesslogs/)
575
accessLog:
576
# -- To enable access logs
577
enabled: false
578
# -- Set [access log format](https://doc.traefik.io/traefik/reference/install-configuration/observability/logs-and-accesslogs/#opt-accesslog-format)
579
format: # @schema enum:["common", "genericCLF", "json", null]; type:[string, null]; default: "common"
580
# filePath: "/var/log/traefik/access.log
581
# -- (int) Set [bufferingSize](https://doc.traefik.io/traefik/reference/install-configuration/observability/logs-and-accesslogs/#opt-accesslog-bufferingSize)
582
bufferingSize: # @schema type:[integer, null]
583
# -- Set [timezone](https://doc.traefik.io/traefik/reference/install-configuration/observability/logs-and-accesslogs/#time-zones)
584
timezone: ""
585
# -- Set [filtering](https://doc.traefik.io/traefik/observe/logs-and-access-logs/#access-log-filters)
586
# @default -- See below
587
filters: # @schema additionalProperties: false
588
# -- Set statusCodes, to limit the access logs to requests with a status codes in the specified range
589
statusCodes: ""
590
# -- Set retryAttempts, to keep the access logs when at least one retry has happened
591
retryAttempts: false
592
# -- Set minDuration, to keep access logs when requests take longer than the specified duration
593
minDuration: ""
594
# -- Enables accessLogs for internal resources. Default: false.
595
addInternals: false
596
# -- Enables access log output alongside OTLP (v3.7+).
597
dualOutput: false
598
fields:
599
# -- Set default mode for fields.names
600
defaultMode: keep # @schema enum:[keep, drop, redact]; default: keep
601
# -- Names of the fields to limit.
602
names: {}
603
headers:
604
# -- [Limit logged fields or headers](https://doc.traefik.io/traefik/observe/logs-and-access-logs/#log-fields-customization)
605
defaultMode: drop # @schema enum:[keep, drop, redact]; default: drop
606
names: {}
607
queryParameters:
608
# -- Keep or drop all query parameters in the RequestPath access log field (v3.7.3+).
609
defaultMode: # @schema enum:[keep, drop, null]; type:[string, null]; default: null
610
otlp:
611
# -- Set to true in order to enable OpenTelemetry on access logs. Note that experimental.otlpLogs needs to be enabled.
612
enabled: false
613
# -- Service name used in OTLP backend. Default: traefik.
614
serviceName: # @schema type:[string, null]
615
http:
616
# -- Set to true in order to send access logs to the OpenTelemetry Collector using HTTP.
617
enabled: false
618
# -- Format: <scheme>://<host>:<port><path>. Default: https://localhost:4318/v1/logs
619
endpoint: ""
620
# -- Additional headers sent with access logs by the reporter to the OpenTelemetry Collector.
621
headers: {}
622
## Defines the TLS configuration used by the reporter to send access logs to the OpenTelemetry Collector.
623
tls:
624
# -- The path to the certificate authority, it defaults to the system bundle.
625
ca: ""
626
# -- The path to the public certificate. When using this option, setting the key option is required.
627
cert: ""
628
# -- The path to the private key. When using this option, setting the cert option is required.
629
key: ""
630
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
631
insecureSkipVerify: # @schema type:[boolean, null]
632
grpc:
633
# -- Set to true in order to send access logs to the OpenTelemetry Collector using gRPC
634
enabled: false
635
# -- Format: <host>:<port>. Default: "localhost:4317"
636
endpoint: ""
637
# -- Allows reporter to send access logs to the OpenTelemetry Collector without using a secured protocol.
638
insecure: false
639
## Defines the TLS configuration used by the reporter to send access logs to the OpenTelemetry Collector.
640
tls:
641
# -- The path to the certificate authority, it defaults to the system bundle.
642
ca: ""
643
# -- The path to the public certificate. When using this option, setting the key option is required.
644
cert: ""
645
# -- The path to the private key. When using this option, setting the cert option is required.
646
key: ""
647
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
648
insecureSkipVerify: # @schema type:[boolean, null]
649
# -- Defines additional resource attributes to be sent to the collector.
650
resourceAttributes: {}
651
metrics:
652
# -- Enable metrics for internal resources. Default: false
653
addInternals: false
654
## Prometheus is enabled by default.
655
## It can be disabled by setting "prometheus: null"
656
prometheus:
657
# -- Entry point used to expose metrics.
658
entryPoint: metrics
659
# -- (bool) Enable metrics on entry points. Default: true
660
addEntryPointsLabels: # @schema type:[boolean, null]
661
# -- (bool) Enable metrics on routers. Default: false
662
addRoutersLabels: # @schema type:[boolean, null]
663
# -- (bool) Enable metrics on services. Default: true
664
addServicesLabels: # @schema type:[boolean, null]
665
# -- Buckets for latency metrics. Default="0.1,0.3,1.2,5.0"
666
buckets: ""
667
# -- When manualRouting is true, it disables the default internal router in
668
## order to allow creating a custom router for prometheus@internal service.
669
manualRouting: false
670
# -- Add HTTP header labels to metrics. See EXAMPLES.md or upstream doc for usage.
671
headerLabels: {} # @schema type:[object, null]
672
service:
673
# -- Create a dedicated metrics service to use with ServiceMonitor
674
enabled: false
675
labels: {}
676
annotations: {}
677
# -- (bool) When set to true, it won't check if Prometheus Operator CRDs are deployed
678
disableAPICheck: # @schema type:[boolean, null]
679
serviceMonitor:
680
# -- Enable optional CR for Prometheus Operator. See EXAMPLES.md for more details.
681
enabled: false
682
apiVersion: "monitoring.coreos.com/v1"
683
metricRelabelings: []
684
relabelings: []
685
jobLabel: ""
686
interval: ""
687
honorLabels: false
688
scrapeTimeout: ""
689
honorTimestamps: false
690
enableHttp2: false
691
followRedirects: false
692
additionalLabels: {}
693
namespace: ""
694
namespaceSelector: {}
695
prometheusRule:
696
# -- Enable optional CR for Prometheus Operator. See EXAMPLES.md for more details.
697
enabled: false
698
apiVersion: "monitoring.coreos.com/v1"
699
additionalLabels: {}
700
namespace: ""
701
# datadog:
702
# ## Address instructs exporter to send metrics to datadog-agent at this address.
703
# address: "127.0.0.1:8125"
704
# ## The interval used by the exporter to push metrics to datadog-agent. Default=10s
705
# # pushInterval: 30s
706
# ## The prefix to use for metrics collection. Default="traefik"
707
# # prefix: traefik
708
# ## Enable metrics on entry points. Default=true
709
# # addEntryPointsLabels: false
710
# ## Enable metrics on routers. Default=false
711
# # addRoutersLabels: true
712
# ## Enable metrics on services. Default=true
713
# # addServicesLabels: false
714
# influxdb2:
715
# ## Address instructs exporter to send metrics to influxdb v2 at this address.
716
# address: localhost:8086
717
# ## Token with which to connect to InfluxDB v2.
718
# token: xxx
719
# ## Organisation where metrics will be stored.
720
# org: ""
721
# ## Bucket where metrics will be stored.
722
# bucket: ""
723
# ## The interval used by the exporter to push metrics to influxdb. Default=10s
724
# # pushInterval: 30s
725
# ## Additional labels (influxdb tags) on all metrics.
726
# # additionalLabels:
727
# # env: production
728
# # foo: bar
729
# ## Enable metrics on entry points. Default=true
730
# # addEntryPointsLabels: false
731
# ## Enable metrics on routers. Default=false
732
# # addRoutersLabels: true
733
# ## Enable metrics on services. Default=true
734
# # addServicesLabels: false
735
# statsd:
736
# ## Address instructs exporter to send metrics to statsd at this address.
737
# address: localhost:8125
738
# ## The interval used by the exporter to push metrics to influxdb. Default=10s
739
# # pushInterval: 30s
740
# ## The prefix to use for metrics collection. Default="traefik"
741
# # prefix: traefik
742
# ## Enable metrics on entry points. Default=true
743
# # addEntryPointsLabels: false
744
# ## Enable metrics on routers. Default=false
745
# # addRoutersLabels: true
746
# ## Enable metrics on services. Default=true
747
# # addServicesLabels: false
748
otlp:
749
# -- Set to true in order to enable the OpenTelemetry metrics
750
enabled: false
751
# -- (bool) Enable metrics on entry points. Default: true
752
addEntryPointsLabels: # @schema type:[boolean, null]
753
# -- (bool) Enable metrics on routers. Default: false
754
addRoutersLabels: # @schema type:[boolean, null]
755
# -- (bool) Enable metrics on services. Default: true
756
addServicesLabels: # @schema type:[boolean, null]
757
# -- Explicit boundaries for Histogram data points. Default: [.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10]
758
explicitBoundaries: []
759
# -- Interval at which metrics are sent to the OpenTelemetry Collector. Default: 10s
760
pushInterval: ""
761
# -- Service name used in OTLP backend. Default: traefik.
762
serviceName: # @schema type:[string, null]
763
http:
764
# -- Set to true in order to send metrics to the OpenTelemetry Collector using HTTP.
765
enabled: false
766
# -- Format: <scheme>://<host>:<port><path>. Default: https://localhost:4318/v1/metrics
767
endpoint: ""
768
# -- Additional headers sent with metrics by the reporter to the OpenTelemetry Collector.
769
headers: {}
770
## Defines the TLS configuration used by the reporter to send metrics to the OpenTelemetry Collector.
771
tls:
772
# -- The path to the certificate authority, it defaults to the system bundle.
773
ca: ""
774
# -- The path to the public certificate. When using this option, setting the key option is required.
775
cert: ""
776
# -- The path to the private key. When using this option, setting the cert option is required.
777
key: ""
778
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
779
insecureSkipVerify: # @schema type:[boolean, null]
780
grpc:
781
# -- Set to true in order to send metrics to the OpenTelemetry Collector using gRPC
782
enabled: false
783
# -- Format: <host>:<port>. Default: "localhost:4317"
784
endpoint: ""
785
# -- Allows reporter to send metrics to the OpenTelemetry Collector without using a secured protocol.
786
insecure: false
787
## Defines the TLS configuration used by the reporter to send metrics to the OpenTelemetry Collector.
788
tls:
789
# -- The path to the certificate authority, it defaults to the system bundle.
790
ca: ""
791
# -- The path to the public certificate. When using this option, setting the key option is required.
792
cert: ""
793
# -- The path to the private key. When using this option, setting the cert option is required.
794
key: ""
795
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
796
insecureSkipVerify: # @schema type:[boolean, null]
797
# -- Defines additional resource attributes to be sent to the collector.
798
resourceAttributes: {}
799
ocsp:
800
# -- Enable OCSP stapling support.
801
# See https://doc.traefik.io/traefik/reference/install-configuration/tls/ocsp/
802
enabled: false
803
# -- Defines the OCSP responder URLs to use instead of the one provided by the certificate.
804
responderOverrides: {}
805
## Tracing
806
# -- https://doc.traefik.io/traefik/reference/install-configuration/observability/tracing/
807
# @default -- See _values.yaml_
808
tracing: # @schema additionalProperties: false
809
# -- Enables tracing for internal resources. Default: false.
810
addInternals: false
811
# -- Service name used in selected backend. Default: traefik.
812
serviceName: # @schema type:[string, null]
813
# -- Defines additional resource attributes to be sent to the collector.
814
resourceAttributes: {}
815
# -- Defines the list of request headers to add as attributes. It applies to client and server kind spans.
816
capturedRequestHeaders: []
817
# -- Defines the list of response headers to add as attributes. It applies to client and server kind spans.
818
capturedResponseHeaders: []
819
# -- By default, all query parameters are redacted. Defines the list of query parameters to not redact.
820
safeQueryParams: []
821
# -- (float) The proportion of requests to trace, specified between 0.0 and 1.0. Default: 1.0.
822
sampleRate: # @schema type:[number, null]; minimum:0; maximum:1
823
otlp:
824
# -- See https://doc.traefik.io/traefik/reference/install-configuration/observability/tracing/#configuration-options
825
enabled: false
826
http:
827
# -- Set to true in order to send metrics to the OpenTelemetry Collector using HTTP.
828
enabled: false
829
# -- Format: <scheme>://<host>:<port><path>. Default: https://localhost:4318/v1/tracing
830
endpoint: ""
831
# -- Additional headers sent with metrics by the reporter to the OpenTelemetry Collector.
832
headers: {}
833
## Defines the TLS configuration used by the reporter to send metrics to the OpenTelemetry Collector.
834
tls:
835
# -- The path to the certificate authority, it defaults to the system bundle.
836
ca: ""
837
# -- The path to the public certificate. When using this option, setting the key option is required.
838
cert: ""
839
# -- The path to the private key. When using this option, setting the cert option is required.
840
key: ""
841
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
842
insecureSkipVerify: # @schema type:[boolean, null]
843
grpc:
844
# -- Set to true in order to send metrics to the OpenTelemetry Collector using gRPC
845
enabled: false
846
# -- Format: <host>:<port>. Default: "localhost:4317"
847
endpoint: ""
848
# -- Allows reporter to send metrics to the OpenTelemetry Collector without using a secured protocol.
849
insecure: false
850
## Defines the TLS configuration used by the reporter to send metrics to the OpenTelemetry Collector.
851
tls:
852
# -- The path to the certificate authority, it defaults to the system bundle.
853
ca: ""
854
# -- The path to the public certificate. When using this option, setting the key option is required.
855
cert: ""
856
# -- The path to the private key. When using this option, setting the cert option is required.
857
key: ""
858
# -- (bool) When set to true, the TLS connection accepts any certificate presented by the server regardless of the hostnames it covers.
859
insecureSkipVerify: # @schema type:[boolean, null]
860
global:
861
checkNewVersion: true
862
# -- Please take time to consider whether or not you wish to share anonymous data with us
863
# See https://doc.traefik.io/traefik/contributing/data-collection/
864
sendAnonymousUsage: false
865
# -- Disable appending RemoteAddr to X-Forwarded-For header globally (v3.7+).
866
notAppendXForwardedFor: false
867
# -- Default strategy for request headers with non-alphanumeric characters in their names, applied to entry points without their own `http.aliasHeadersStrategy` or `http.underscoreHeadersStrategy` (v3.7.17+).
868
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#aliasheadersstrategy)
869
aliasHeadersStrategy: # @schema enum:[keep, delete, reject, null]; type:[string, null]
870
# -- Pull secrets for fetching traefik container image when `deployment.imagePullSecrets` and `imagePullSecrets` are empty
871
imagePullSecrets: []
872
# -- Required for Azure Marketplace integration.
873
# See https://learn.microsoft.com/en-us/partner-center/marketplace-offers/azure-container-technical-assets-kubernetes?tabs=linux,linux2#update-the-helm-chart
874
# @default -- See _values.yaml_
875
azure:
876
enabled: false
877
images:
878
proxy:
879
image: chainguard-private/traefik
880
tag: 3.7.16-r4@sha256:cf8ce2be806d62615f49bf41bf4ac5003547ebf5cb5138a602306987055873d8
881
registry: cgr.dev
882
hub:
883
image: chainguard-private/traefik
884
tag: 3.7.16-r4@sha256:cf8ce2be806d62615f49bf41bf4ac5003547ebf5cb5138a602306987055873d8
885
registry: cgr.dev
886
# -- Additional arguments to be passed at Traefik's binary
887
# See [CLI Reference](https://docs.traefik.io/reference/static-configuration/cli/)
888
# Use curly braces to pass values: `helm install --set="additionalArguments={--providers.kubernetesingress.ingressclass=traefik-internal,--log.level=DEBUG}"`
889
additionalArguments: []
890
# - "--providers.kubernetesingress.ingressclass=traefik-internal"
891
# - "--log.level=DEBUG"
892
893
# -- Additional Environment variables to be passed to Traefik's binary
894
env: []
895
# -- Environment variables to be passed to Traefik's binary from configMaps or secrets
896
envFrom: []
897
# @schema mergeProperties: true
898
ports:
899
# @schema additionalProperties: false
900
traefik:
901
port: 8080
902
# -- (int) Use hostPort if set.
903
hostPort: # @schema type:[integer, null]; minimum:0
904
# -- Use hostIP if set. If not set, Kubernetes will default to 0.0.0.0, which
905
# means it's listening on all your interfaces and all your IPs. You may want
906
# to set this value if you need traefik to listen on specific interface
907
# only.
908
hostIP: # @schema type:[string, null]
909
# Defines whether the port is exposed if service.type is LoadBalancer or
910
# NodePort.
911
#
912
# -- You SHOULD NOT expose the traefik port on production deployments.
913
# If you want to access it from outside your cluster,
914
# use `kubectl port-forward` or create a secure ingress
915
expose:
916
default: false
917
# -- The exposed port for this service
918
exposedPort: 8080
919
# -- The port protocol (TCP/UDP)
920
protocol: TCP
921
observability: # @schema additionalProperties: false
922
# -- (bool) Defines whether a router attached to this EntryPoint produces metrics by default.
923
metrics: # @schema type:[boolean, null]; default: true
924
# -- (bool) Defines whether a router attached to this EntryPoint produces access-logs by default.
925
accessLogs: # @schema type:[boolean, null]; default: true
926
# -- (bool) Defines whether a router attached to this EntryPoint produces traces by default.
927
tracing: # @schema type:[boolean, null]; default: true
928
# -- Defines the tracing verbosity level for routers attached to this EntryPoint.
929
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
930
web:
931
# -- (bool) Enable this entrypoint as a default entrypoint. When a service doesn't explicitly set an entrypoint it will only use this entrypoint.
932
asDefault: # @schema type: [boolean, null]; default: null
933
port: 8000
934
# hostPort: 8000
935
# containerPort: 8000
936
expose:
937
default: true
938
exposedPort: 80
939
# -- (string/int) Different target traefik port on the cluster, useful for IP type LB
940
targetPort: # @schema type:[string, integer, null]; minimum:0
941
# -- The port protocol (TCP/UDP)
942
protocol: TCP
943
# -- (int) See [upstream documentation](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
944
nodePort: # @schema type:[integer, null]; minimum:0
945
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#allowacmebypass)
946
allowACMEByPass: false
947
http:
948
redirections:
949
# -- Port Redirections
950
# Added in 2.2, one can make permanent redirects via entrypoints.
951
# Same sets of parameters: to, scheme, permanent and priority.
952
# https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#configuration-example
953
entryPoint: {}
954
forwardedHeaders:
955
# -- Trust forwarded headers information (X-Forwarded-*).
956
trustedIPs: []
957
insecure: false
958
# -- Disable appending RemoteAddr to X-Forwarded-For header (v3.7+).
959
notAppendXForwardedFor: false
960
proxyProtocol:
961
# -- Enable the Proxy Protocol header parsing for the entry point
962
trustedIPs: []
963
insecure: false
964
# -- Set transport settings for the entrypoint
965
# @default -- nil
966
transport:
967
respondingTimeouts:
968
readTimeout: # @schema type:[string, integer, null]
969
writeTimeout: # @schema type:[string, integer, null]
970
idleTimeout: # @schema type:[string, integer, null]
971
lifeCycle:
972
requestAcceptGraceTimeout: # @schema type:[string, integer, null]
973
graceTimeOut: # @schema type:[string, integer, null]
974
keepAliveMaxRequests: # @schema type:[integer, null]; minimum:0
975
keepAliveMaxTime: # @schema type:[string, integer, null]
976
# -- (bool) Enable this port as an uplink for multi cluster.
977
# ⚠️ This feature is experimental and requires Traefik Hub with a specific subscription.
978
uplink: # @schema type: [boolean, null]; default: null
979
observability: # @schema additionalProperties: false
980
# -- (bool) Enables metrics for this entryPoint.
981
metrics: # @schema type:[boolean, null]; default: true
982
# -- (bool) Enables access-logs for this entryPoint.
983
accessLogs: # @schema type:[boolean, null]; default: true
984
# -- (bool) Enables tracing for this entryPoint.
985
tracing: # @schema type:[boolean, null]; default: true
986
# -- Defines the tracing verbosity level for this entryPoint.
987
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
988
websecure:
989
## -- Enable this entrypoint as a default entrypoint. When a service doesn't explicitly set an entrypoint it will only use this entrypoint.
990
# asDefault: true
991
port: 8443
992
# -- (int) Use hostPort if set.
993
hostPort: # @schema type:[integer, null]; minimum:0
994
# -- (int) Use containerPort if set.
995
containerPort: # @schema type:[integer, null]; minimum:0
996
expose:
997
default: true
998
exposedPort: 443
999
# -- (string/int) Different target traefik port on the cluster, useful for IP type LB
1000
targetPort: # @schema type:[string, integer, null]; minimum:0
1001
# -- The port protocol (TCP/UDP)
1002
protocol: TCP
1003
# -- (int) See [upstream documentation](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
1004
nodePort: # @schema type:[integer, null]; minimum:0
1005
# -- See [upstream documentation](https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol)
1006
appProtocol: # @schema type:[string, null]
1007
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#allowacmebypass)
1008
allowACMEByPass: false
1009
http:
1010
# -- See [upstream documentation](https://doc.traefik.io/traefik/security/request-path/#encoded-character-filtering)
1011
# @default -- nil
1012
encodedCharacters: # @schema additionalProperties: false
1013
allowEncodedSlash: # @schema type:[boolean, null]
1014
allowEncodedBackSlash: # @schema type:[boolean, null]
1015
allowEncodedNullCharacter: # @schema type:[boolean, null]
1016
allowEncodedSemicolon: # @schema type:[boolean, null]
1017
allowEncodedPercent: # @schema type:[boolean, null]
1018
allowEncodedQuestionMark: # @schema type:[boolean, null]
1019
allowEncodedHash: # @schema type:[boolean, null]
1020
# -- (int) Maximum size of request headers in bytes. Default: 1048576 (1 MB)
1021
maxHeaderBytes: # @schema type:[integer, null]; minimum:0
1022
# -- (int) Maximum number of request header values (v3.7.17+). Default: 500
1023
maxHeaderValueCount: # @schema type:[integer, null]; minimum:0
1024
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#httpmiddlewares)
1025
middlewares: [] # @schema type: [array, null]
1026
# -- (bool) See [upstream documentation](https://doc.traefik.io/traefik/security/request-path/#path-sanitization)
1027
sanitizePath: # @schema type:[boolean, null]
1028
# -- Defines how request headers with non-alphanumeric characters in their names are handled (v3.7.12+).
1029
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#aliasheadersstrategy)
1030
aliasHeadersStrategy: # @schema enum:[keep, delete, reject, null]; type:[string, null]
1031
# -- Defines how request headers with underscores in their names are handled (v3.7.6-v3.7.11).
1032
# Replaced by the aliasHeadersStrategy option for Traefik v3.7.12+.
1033
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#underscoreheadersstrategy)
1034
underscoreHeadersStrategy: # @schema deprecated; enum:[keep, delete, reject, null]; type:[string, null]
1035
tls:
1036
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#opt-http-tls)
1037
# @default -- true
1038
enabled: true
1039
options: ""
1040
certResolver: ""
1041
domains: []
1042
http3:
1043
# -- Enable HTTP/3 on the entrypoint. It also enables the http3 experimental feature.
1044
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#opt-http3).
1045
# There are known limitations when trying to listen on same ports for TCP & UDP ([kubernetes#47249](https://github.com/kubernetes/kubernetes/issues/47249#issuecomment-587960741)): this chart works around it using a dual Service.
1046
enabled: false
1047
# -- (int) Defines the UDP port to advertise as the HTTP/3 authority.
1048
advertisedPort: # @schema type:[integer, null]; minimum:0
1049
forwardedHeaders:
1050
# -- Trust forwarded headers information (X-Forwarded-*).
1051
trustedIPs: []
1052
insecure: false
1053
# -- Disable appending RemoteAddr to X-Forwarded-For header (v3.7+).
1054
notAppendXForwardedFor: false
1055
proxyProtocol:
1056
# -- Enable the Proxy Protocol header parsing for the entry point
1057
trustedIPs: []
1058
insecure: false
1059
# -- Set transport settings for the entrypoint
1060
# @default -- nil
1061
transport:
1062
respondingTimeouts:
1063
readTimeout: # @schema type:[string, integer, null]
1064
writeTimeout: # @schema type:[string, integer, null]
1065
idleTimeout: # @schema type:[string, integer, null]
1066
lifeCycle:
1067
requestAcceptGraceTimeout: # @schema type:[string, integer, null]
1068
graceTimeOut: # @schema type:[string, integer, null]
1069
keepAliveMaxRequests: # @schema type:[integer, null]; minimum:0
1070
keepAliveMaxTime: # @schema type:[string, integer, null]
1071
observability: # @schema additionalProperties: false
1072
# -- (bool) Enables metrics for this entryPoint.
1073
metrics: # @schema type:[boolean, null]; default: true
1074
# -- (bool) Enables access-logs for this entryPoint.
1075
accessLogs: # @schema type:[boolean, null]; default: true
1076
# -- (bool) Enables tracing for this entryPoint.
1077
tracing: # @schema type:[boolean, null]; default: true
1078
# -- Defines the tracing verbosity level for this entryPoint.
1079
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
1080
metrics:
1081
# -- When using hostNetwork, use another port to avoid conflict with node exporter:
1082
# https://github.com/prometheus/prometheus/wiki/Default-port-allocations
1083
port: 9100
1084
# -- You may not want to expose the metrics port on production deployments.
1085
# If you want to access it from outside your cluster,
1086
# use `kubectl port-forward` or create a secure ingress
1087
expose:
1088
default: false
1089
# -- The exposed port for this service
1090
exposedPort: 9100
1091
# -- The port protocol (TCP/UDP)
1092
protocol: TCP
1093
observability: # @schema additionalProperties: false
1094
# -- (bool) Enables metrics for this entryPoint.
1095
metrics: # @schema type:[boolean, null]; default: true
1096
# -- (bool) Enables access-logs for this entryPoint.
1097
accessLogs: # @schema type:[boolean, null]; default: true
1098
# -- (bool) Enables tracing for this entryPoint.
1099
tracing: # @schema type:[boolean, null]; default: true
1100
# -- Defines the tracing verbosity level for this entryPoint.
1101
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
1102
# -- TLS Options are created as [TLSOption CRDs](https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/crd/tls/tlsoption/)
1103
# When using `labelSelector`, you'll need to set labels on tlsOption accordingly.
1104
# See EXAMPLE.md for details.
1105
tlsOptions: {}
1106
# -- TLS Store are created as [TLSStore CRDs](https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/crd/tls/tlsstore/).
1107
# This is useful if you want to set a default certificate. See EXAMPLE.md for details.
1108
tlsStore: {}
1109
service:
1110
enabled: true
1111
# -- Override the default Service name. Useful for adopting an existing Service (e.g., during migration from another ingress controller).
1112
nameOverride: "" # @schema type:[string, null]
1113
# -- Single service exposing both TCP and UDP ports.
1114
# When set to false, it will create two Service, one for TCP and one for UDP.
1115
single: true
1116
# -- Additional annotations applied to both TCP and UDP services (e.g. for cloud provider specific config)
1117
annotations: {}
1118
# -- Additional annotations for TCP service only
1119
annotationsTCP: {}
1120
# -- Additional annotations for UDP service only
1121
annotationsUDP: {}
1122
# -- Additional service labels (e.g. for filtering Service by custom labels)
1123
labels: {}
1124
# -- Additional entries here will be added to the Service [spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#servicespec-v1-core).
1125
# Cannot contain selector or ports entries.
1126
spec:
1127
type: LoadBalancer
1128
# -- Can be used to create multiple Service.
1129
# See EXAMPLES.md for more details.
1130
additionalServices: {}
1131
autoscaling: # @schema additionalProperties: false
1132
# -- Create HorizontalPodAutoscaler object.
1133
# See EXAMPLES.md for more details.
1134
enabled: false
1135
# -- (int) minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.
1136
minReplicas: # @schema type:[integer, null]; minimum:0
1137
# -- (int) maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
1138
maxReplicas: # @schema type:[integer, null]; minimum:0
1139
# -- metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).
1140
metrics: []
1141
# -- behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).
1142
behavior: {}
1143
# -- scaleTargetRef points to the target resource to scale, and is used for the pods for which metrics should be collected, as well as to actually change the replica count.
1144
# @default -- Traefik Deployment
1145
scaleTargetRef:
1146
apiVersion: apps/v1
1147
kind: Deployment
1148
name: "{{ template \"traefik.fullname\" . }}"
1149
persistence:
1150
# -- Enable persistence using Persistent Volume Claims
1151
# ref: http://kubernetes.io/docs/user-guide/persistent-volumes/.
1152
# It can be used to store TLS certificates along with `certificatesResolvers.<name>.acme.storage` option
1153
enabled: false
1154
name: data
1155
existingClaim: ""
1156
accessMode: ReadWriteOnce
1157
size: 128Mi
1158
storageClass: # @schema type:[string, null]
1159
volumeName: ""
1160
path: /data
1161
annotations: {}
1162
# -- Only mount a subpath of the Volume into the pod
1163
subPath: ""
1164
# -- [EmptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) options when persistence is disabled
1165
emptyDir: {}
1166
# -- Certificates resolvers configuration.
1167
# Ref: https://doc.traefik.io/traefik/reference/install-configuration/tls/certificate-resolvers/acme/
1168
# See EXAMPLES.md for more details.
1169
certificatesResolvers: {}
1170
# -- If hostNetwork is true, runs traefik in the host network namespace
1171
# To prevent unschedulable pods due to port collisions, if hostNetwork=true
1172
# and replicas>1, a pod anti-affinity is recommended and will be set if the
1173
# affinity is left as default.
1174
hostNetwork: false
1175
rbac: # @schema additionalProperties: false
1176
# -- Whether Role Based Access Control objects like roles and rolebindings should be created
1177
enabled: true
1178
# -- When set to true: <br />
1179
# 1. It switches respectively the use of `ClusterRole` and `ClusterRoleBinding` to `Role` and `RoleBinding`.<br />
1180
# 2. It adds `disableClusterScopeResources` on Ingress and CRD (Kubernetes) providers<br />
1181
# **NOTE**: `IngressClass`, `NodePortLB` and **Gateway** provider cannot be used with namespaced RBAC. <br />
1182
# **NOTE**: with Traefik Hub, a cluster-scoped `ValidatingAdmissionPolicy` is deployed by default but can be opt-out. See `hub.restrictSecretTypes`. <br />
1183
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/providers/kubernetes/kubernetes-ingress/#opt-providers-kubernetesIngress-disableClusterScopeResources) for more details.
1184
namespaced: false
1185
# -- Enable user-facing roles
1186
# https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
1187
aggregateTo: []
1188
# -- List of Kubernetes secrets that are accessible for Traefik when `rbac.namespaced` is true. If empty, then access is granted to every secret. Ignored when `rbac.namespaced` is false (ClusterRole), since Kubernetes RBAC does not support `resourceNames` on cluster-scoped list/watch rules.
1189
secretResourceNames: []
1190
# -- The service account the pods will use to interact with the Kubernetes API
1191
serviceAccount: # @schema additionalProperties: false
1192
# If set, an existing service account is used
1193
# If not set, a service account is created automatically using the fullname template
1194
name: ""
1195
# -- Additional serviceAccount annotations (e.g. for oidc authentication)
1196
serviceAccountAnnotations: {}
1197
# -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for `traefik` container.
1198
resources: {}
1199
# -- This example pod anti-affinity forces the scheduler to put traefik pods
1200
# -- on nodes where no other traefik pods are scheduled.
1201
# It should be used when hostNetwork: true to prevent port conflicts
1202
affinity: {}
1203
# podAntiAffinity:
1204
# requiredDuringSchedulingIgnoredDuringExecution:
1205
# - labelSelector:
1206
# matchLabels:
1207
# app.kubernetes.io/name: '{{ template "traefik.name" . }}'
1208
# app.kubernetes.io/instance: '{{ .Release.Name }}-{{ include "traefik.namespace" . }}'
1209
# topologyKey: kubernetes.io/hostname
1210
1211
# -- nodeSelector is the simplest recommended form of node selection constraint.
1212
nodeSelector: {}
1213
# -- Tolerations allow the scheduler to schedule pods with matching taints.
1214
tolerations: []
1215
# -- You can use topology spread constraints to control
1216
# how Pods are spread across your cluster among failure-domains.
1217
topologySpreadConstraints: []
1218
# This example topologySpreadConstraints forces the scheduler to put traefik pods
1219
# on nodes where no other traefik pods are scheduled.
1220
# - labelSelector:
1221
# matchLabels:
1222
# app.kubernetes.io/name: '{{ template "traefik.name" . }}'
1223
# maxSkew: 1
1224
# topologyKey: kubernetes.io/hostname
1225
# whenUnsatisfiable: DoNotSchedule
1226
1227
# -- [Pod Priority and Preemption](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/)
1228
priorityClassName: ""
1229
# -- [SecurityContext](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1)
1230
# @default -- See _values.yaml_
1231
securityContext:
1232
allowPrivilegeEscalation: false
1233
capabilities:
1234
drop: [ALL]
1235
readOnlyRootFilesystem: true
1236
# -- [Pod Security Context](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context)
1237
# @default -- See _values.yaml_
1238
podSecurityContext:
1239
runAsGroup: 65532
1240
runAsNonRoot: true
1241
runAsUser: 65532
1242
seccompProfile:
1243
type: RuntimeDefault
1244
#
1245
# -- Extra objects to deploy (value evaluated as a template)
1246
#
1247
# In some cases, it can avoid the need for additional, extended or adhoc deployments.
1248
# See #595 for more details and traefik/tests/values/extra.yaml for example.
1249
extraObjects: []
1250
# -- This field overrides the default Release Namespace for Helm.
1251
# It will not affect optional CRDs such as `ServiceMonitor` and `PrometheusRules`
1252
namespaceOverride: ""
1253
# -- This field overrides the default app.kubernetes.io/instance label for all Objects.
1254
instanceLabelOverride: ""
1255
# -- This field overrides the default version extracted from image.tag. Required when pinning by `image.digest`, since the version cannot be derived from a digest.
1256
versionOverride: ""
1257
# -- overrides the app.kubernetes.io/name label
1258
nameOverride: ""
1259
# -- Overrides the resource name for templates (i.e deployment, service, etc..)
1260
fullnameOverride: ""
1261
# Traefik Hub configuration. See https://doc.traefik.io/traefik-hub/
1262
hub: # @schema additionalProperties: false
1263
# -- (bool) Install Traefik Hub. Without `hub.token`, it runs in proxy mode: a drop-in Traefik
1264
# Proxy, which requires Traefik Hub >= v3.21.0-ea.
1265
# @default -- `true` when `hub.token` is set
1266
enabled: # @schema type:[boolean, null]
1267
# -- Name of `Secret` with key 'token' set to a valid license token.
1268
# It enables API Gateway.
1269
token: ""
1270
# -- Mount path for token secret.
1271
tokenMountPath: "/etc/secrets"
1272
# -- Use the hardened image variant. It appends `-hardened` to the tag and defaults the image
1273
# to `registry.traefik.io/traefik-hub`. Requires `hub.enabled` and Traefik Hub >= v3.21.0-ea.
1274
hardened: false
1275
# -- (bool) Disables all external network connections.
1276
offline: # @schema type:[boolean, null]
1277
# -- By default, Traefik Hub provider watches all namespaces. When using `rbac.namespaced`, it will watch helm release namespace and namespaces listed in this array.
1278
namespaces: [] # @schema required:true
1279
# -- Deploy a `ValidatingAdmissionPolicy` that only allows Traefik Hub to write `Opaque` and `kubernetes.io/tls` Secrets.
1280
# It prevents Traefik Hub from creating `kubernetes.io/service-account-token` Secrets. Requires `hub.token`.
1281
# **NOTE**: it is a cluster-scoped resource, also deployed with `rbac.namespaced`. Disable it only if the chart installer cannot create it.
1282
restrictSecretTypes: true
1283
apimanagement:
1284
# -- Set to true in order to enable API Management. Requires a valid license token.
1285
enabled: false
1286
admission:
1287
# -- WebHook admission server listen address. Default: "0.0.0.0:9943".
1288
listenAddr: ""
1289
# -- Certificate name of the WebHook admission server. Default: "hub-agent-cert".
1290
secretName: "hub-agent-cert"
1291
# -- By default, this chart handles directly the tls certificate required for the admission webhook. It's possible to disable this behavior and handle it outside of the chart. See EXAMPLES.md for more details.
1292
selfManagedCertificate: false
1293
# -- Set custom certificate for the WebHook admission server. The certificate should be specified with _tls.crt_ and _tls.key_ in base64 encoding.
1294
customWebhookCertificate: {}
1295
# -- Set it to false if you need to disable Traefik Hub pod restart when mutating webhook certificate is updated. It's done with a label update.
1296
restartOnCertificateChange: true
1297
# -- Set custom annotations.
1298
annotations: {}
1299
openApi:
1300
# -- When set to true, it will only accept paths and methods that are explicitly defined in its OpenAPI specification
1301
validateRequestMethodAndPath: false
1302
# -- Interval to refresh the OpenAPI specification, as a Go duration. Must be at least `1m`.
1303
# @default -- `1m` when unset
1304
refreshInterval: ""
1305
mcpgateway:
1306
# -- Set to true in order to enable AI MCP Gateway. Requires a valid license token.
1307
enabled: false
1308
# -- (int) Hard limit for the size of request bodies inspected by the gateway. Accepts a plain integer representing **bytes**. The default value is `1048576` (1 MiB).
1309
maxRequestBodySize: # @schema type:[integer, null]; minimum:0
1310
aigateway:
1311
# -- Set to true in order to enable AI Gateway. Requires a valid license token.
1312
enabled: false
1313
# -- (int) Hard limit for the size of request bodies inspected by the gateway. Accepts a plain integer representing **bytes**. The default value is `1048576` (1 MiB).
1314
maxRequestBodySize: # @schema type:[integer, null]; minimum:0
1315
providers:
1316
consulCatalogEnterprise:
1317
# -- Enable Consul Catalog Enterprise backend with default settings.
1318
enabled: false
1319
# -- Use local agent caching for catalog reads.
1320
cache: false
1321
# -- Enable Consul Connect support.
1322
connectAware: false
1323
# -- Consider every service as Connect capable by default.
1324
connectByDefault: false
1325
# -- Constraints is an expression that Traefik matches against the container's labels
1326
constraints: ""
1327
# -- Default rule.
1328
defaultRule: "Host(`{{ normalize .Name }}`)"
1329
endpoint:
1330
# -- The address of the Consul server
1331
address: ""
1332
# -- Data center to use. If not provided, the default agent data center is used
1333
datacenter: ""
1334
# -- (int) WaitTime limits how long a Watch will block. If not provided, the agent default
1335
endpointWaitTime: # @schema type:[integer, null]
1336
httpauth:
1337
# -- Basic Auth password
1338
password: ""
1339
# -- Basic Auth username
1340
username: ""
1341
# -- The URI scheme for the Consul server
1342
scheme: ""
1343
tls:
1344
# -- TLS CA
1345
ca: ""
1346
# -- TLS cert
1347
cert: ""
1348
# -- TLS insecure skip verify
1349
insecureSkipVerify: false
1350
# -- TLS key
1351
key: ""
1352
# -- Token is used to provide a per-request ACL token which overrides the agent's
1353
token: ""
1354
# -- Expose containers by default.
1355
exposedByDefault: true
1356
# -- Sets the namespaces used to discover services (Consul Enterprise only).
1357
namespaces: ""
1358
# -- Sets the partition used to discover services (Consul Enterprise only).
1359
partition: ""
1360
# -- Prefix for consul service tags.
1361
prefix: "traefik"
1362
# -- Interval for checking Consul API.
1363
refreshInterval: 15
1364
# -- Forces the read to be fully consistent.
1365
requireConsistent: false
1366
# -- Name of the Traefik service in Consul Catalog (needs to be registered via the
1367
serviceName: "traefik"
1368
# -- Use stale consistency for catalog reads.
1369
stale: false
1370
# -- A list of service health statuses to allow taking traffic.
1371
strictChecks: "passing, warning"
1372
# -- Watch Consul API events.
1373
watch: false
1374
# @schema additionalProperties: false
1375
ec2:
1376
# -- Enable AWS EC2 provider.
1377
enabled: false
1378
# -- AWS region used for EC2 API requests. When empty, the region is retrieved from the EC2 Instance Metadata Service.
1379
region: ""
1380
# -- AWS access key ID, set together with secretAccessKey. Readable from the Pod spec: prefer IRSA, the instance role or `env`.
1381
accessKeyID: ""
1382
# -- AWS secret access key, set together with accessKeyID. Readable from the Pod spec: prefer IRSA, the instance role or `env`.
1383
secretAccessKey: ""
1384
# -- AWS session token, required with temporary credentials (Hub v3.21.7+). Readable from the Pod spec: prefer IRSA, the instance role or `env`.
1385
sessionToken: ""
1386
# -- Expose instances by default. When false, only instances with the `traefik.enable=true` tag are exposed.
1387
exposedByDefault: true
1388
# -- Polling interval, in seconds, for the EC2 API.
1389
refreshSeconds: 15
1390
# -- Default rule applied to instances that do not define a router rule tag.
1391
defaultRule: ""
1392
# -- Expression matched against instance tags to determine whether to create routes for an instance.
1393
constraints: ""
1394
# -- Default backend IP mode: private, public or ipv6. Overridable per instance with the `traefik.ec2.ipmode` tag.
1395
ipMode: "" # @schema enum:["", "private", "public", "ipv6"]
1396
# -- EC2 API filters used to scope instance discovery. List of `{ name: "<filter>", values: ["<value>"] }` entries.
1397
filters: [] # @schema item:object
1398
# @schema additionalProperties: false
1399
securityGroupPortDiscovery:
1400
# -- Derive the backend port from the instance security-group rules when no port tag is set.
1401
enabled: false
1402
# -- Ports excluded from security-group port discovery. When empty, the provider excludes privileged ports except 80 and 443.
1403
excludedPorts: []
1404
microcks:
1405
# -- Enable Microcks provider.
1406
enabled: false
1407
auth:
1408
# -- Microcks API client ID.
1409
clientId: ""
1410
# -- Microcks API client secret.
1411
clientSecret: ""
1412
# -- Microcks API endpoint.
1413
endpoint: ""
1414
# -- Microcks API token.
1415
token: ""
1416
# -- Microcks API endpoint.
1417
endpoint: ""
1418
# -- Polling interval for Microcks API.
1419
pollInterval: 30
1420
# -- Polling timeout for Microcks API.
1421
pollTimeout: 5
1422
tls:
1423
# -- TLS CA
1424
ca: ""
1425
# -- TLS cert
1426
cert: ""
1427
# -- TLS insecure skip verify
1428
insecureSkipVerify: false
1429
# -- TLS key
1430
key: ""
1431
multicluster:
1432
# -- Enable Multi-cluster provider.
1433
enabled: false
1434
# -- Polling interval for Multi-cluster.
1435
pollInterval: 5
1436
# -- Polling timeout for Multi-cluster.
1437
pollTimeout: 5
1438
# @schema mergeProperties: true
1439
# -- Child cluster configurations, keyed by a unique name.
1440
# @default -- {}
1441
children:
1442
# @schema additionalProperties: false
1443
cluster-1:
1444
# -- URL of the child cluster's uplink entrypoint.
1445
address: ""
1446
# -- TLS and transport configuration for connecting to this child.
1447
# @default -- {}
1448
serversTransport:
1449
# -- (bool) Disable TLS certificate verification. **Not recommended for production.**
1450
# @default -- false
1451
insecureSkipVerify: # @schema type:[boolean, null]
1452
# -- Server name used for SNI and certificate verification.
1453
serverName: ""
1454
rootCAs: []
1455
certificates: []
1456
# -- (int) Maximum idle connections per host.
1457
# @default -- 200
1458
maxIdleConnsPerHost: # @schema type:[integer, null]
1459
# -- (bool) Disable HTTP/2 for connections to this child.
1460
# @default -- false
1461
disableHTTP2: # @schema type:[boolean, null]
1462
# -- Minimum TLS version (e.g. `VersionTLS12`, `VersionTLS13`).
1463
minVersion: ""
1464
# -- Maximum TLS version (e.g. `VersionTLS12`, `VersionTLS13`).
1465
maxVersion: ""
1466
# -- List of supported cipher suites for TLS versions up to 1.2.
1467
cipherSuites: []
1468
# -- URI used to match against SAN URIs during the server's certificate verification.
1469
peerCertURI: ""
1470
forwardingTimeouts:
1471
# @schema type:[string, integer, null]
1472
# -- Timeout for establishing connections.
1473
# @default -- 30s
1474
dialTimeout:
1475
# @schema type:[string, integer, null]
1476
# -- Timeout for reading response headers.
1477
# @default -- 0s
1478
responseHeaderTimeout:
1479
# @schema type:[string, integer, null]
1480
# -- Timeout for idle connections.
1481
# @default -- 90s
1482
idleConnTimeout:
1483
# @schema type:[string, integer, null]
1484
# -- Timeout for HTTP/2 server ping frames.
1485
# @default -- 15s
1486
pingTimeout:
1487
# @schema type:[string, integer, null]
1488
# -- Timeout for HTTP/2 connection idle reads.
1489
# @default -- 0s
1490
readIdleTimeout:
1491
# @schema type:[string, integer, null]
1492
# -- Timeout for reading the request body.
1493
# @default -- 0s
1494
readTimeout:
1495
# @schema type:[string, integer, null]
1496
# -- Timeout for writing the response.
1497
# @default -- 0s
1498
writeTimeout:
1499
spiffe:
1500
ids: []
1501
# @schema type:[string, integer, null]
1502
# -- SPIFFE trust domain.
1503
trustDomain: ""
1504
# @schema additionalProperties: false
1505
nutanixPrismCentral:
1506
# -- Enable Nutanix Prism Central provider.
1507
enabled: false
1508
# -- Prism Central endpoint.
1509
endpoint: ""
1510
# -- Prism Central username.
1511
username: ""
1512
# -- Prism Central password.
1513
password: ""
1514
# -- Prism Central API key.
1515
apiKey: ""
1516
# -- Base configuration file path.
1517
filename: ""
1518
# -- Polling interval for Nutanix Prism Central API.
1519
pollInterval: 30
1520
# -- Polling timeout for Nutanix Prism Central API.
1521
pollTimeout: 5
1522
# -- Category key used to derive the service name.
1523
serviceNameCategoryKey: "TraefikServiceName"
1524
# -- Filter VMs by VPCs. List of `{ uuid: "<vpc-uuid>" }` entries.
1525
allowedVpcs: []
1526
tls:
1527
# -- TLS CA
1528
ca: ""
1529
# -- TLS cert
1530
cert: ""
1531
# -- TLS key
1532
key: ""
1533
# -- TLS insecure skip verify
1534
insecureSkipVerify: false
1535
redis:
1536
# -- (bool) Enable Redis Cluster. Default: true.
1537
cluster: # @schema type:[boolean, null]
1538
# -- (int) Database used to store information. Default: 0.
1539
database: # @schema type:[integer, null]
1540
# -- Endpoints of the Redis instances to connect to. Default: "".
1541
endpoints: ""
1542
# -- The username to use when connecting to Redis endpoints. Default: "".
1543
username: ""
1544
# -- The password to use when connecting to Redis endpoints. Default: "".
1545
password: ""
1546
sentinel:
1547
# -- Name of the set of main nodes to use for main selection. Required when using Sentinel. Default: "".
1548
masterset: ""
1549
# -- Username to use for sentinel authentication (can be different from endpoint username). Default: "".
1550
username: ""
1551
# -- Password to use for sentinel authentication (can be different from endpoint password). Default: "".
1552
password: ""
1553
# -- Timeout applied on connection with redis. Default: "0s".
1554
timeout: ""
1555
tls:
1556
# -- Path to the certificate authority used for the secured connection.
1557
ca: ""
1558
# -- Path to the public certificate used for the secure connection.
1559
cert: ""
1560
# -- Path to the private key used for the secure connection.
1561
key: ""
1562
# -- When insecureSkipVerify is set to true, the TLS connection accepts any certificate presented by the server. Default: false.
1563
insecureSkipVerify: false
1564
# -- (bool) Enable export of error logs to the platform. Default: true.
1565
sendlogs: # @schema type:[boolean, null]
1566
# @schema additionalProperties: false
1567
# -- Tamper-evident transparency logs. It's enabled as soon as a `driver` is configured.
1568
# Requires a valid license token and Traefik Hub >= v3.21.
1569
# @default -- See _values.yaml_
1570
transparencyLogs:
1571
# @schema additionalProperties: false
1572
# -- Storage backend for the transparency log tree. Exactly one of `posix`, `gcp` or `aws` can be set.
1573
driver:
1574
# @schema additionalProperties: false
1575
posix:
1576
# -- Local filesystem path where the transparency log is stored.
1577
path: ""
1578
# @schema additionalProperties: false
1579
gcp:
1580
# -- Name of the GCS bucket used to store log state.
1581
bucket: ""
1582
# -- Prefix prepended to all log resource paths, to store multiple logs in one bucket.
1583
bucketPrefix: ""
1584
# -- GCP resource URI of the Spanner database instance to use.
1585
spanner: ""
1586
# @schema additionalProperties: false
1587
aws:
1588
# -- Name of the S3 bucket used to store log state.
1589
bucket: ""
1590
# -- Prefix prepended to all log resource paths, to store multiple logs in one bucket.
1591
bucketPrefix: ""
1592
# -- DSN of the MySQL instance to use. It carries the database password: treat it as a secret.
1593
dsn: ""
1594
# -- (int) Maximum number of open connections to the MySQL database.
1595
maxOpenConns: # @schema type:[integer, null]; minimum:0
1596
# -- (int) Maximum number of idle connections in the MySQL connection pool.
1597
maxIdleConns: # @schema type:[integer, null]; minimum:0
1598
# -- Private key used to sign each checkpoint, as a file path. It's required as soon as a `driver` is set and it needs to be mounted in the pod, see EXAMPLES.md.
1599
signerPrivateKey: ""
1600
# -- Interval between checkpoint writes, as a Go duration. Must be at least `100ms`.
1601
# @default -- `1s` when unset
1602
checkpointInterval: ""
1603
# -- (bool) Also store the full rendered log line, not only its hash. Not recommended in production. Default: false.
1604
debug: # @schema type:[boolean, null]
1605
# @schema additionalProperties: false
1606
# -- Witnesses cosigning each checkpoint.
1607
# @default -- See _values.yaml_
1608
witnessGroup:
1609
# -- (int) Minimum number of witnesses that must cosign for the group to be satisfied. It cannot exceed the number of configured witnesses. Default: 1.
1610
threshold: # @schema type:[integer, null]; minimum:1
1611
# -- Maximum time to wait for witnesses to cosign a checkpoint, as a Go duration.
1612
# @default -- `5s` when unset
1613
timeout: ""
1614
# -- (bool) Publish checkpoints even when the witness policy cannot be satisfied. Intended only for a non-blocking adoption of witnessing. Default: false.
1615
failOpen: # @schema type:[boolean, null]
1616
# -- (list) Witnesses cosigning each checkpoint. At least one is required when `threshold`, `timeout` or `failOpen` is set. List of `{ url: "<url>", key: "<path-or-content>" }` entries.
1617
witnesses: # @schema type:[array, null]; item:object; minItems:1
1618
tracing:
1619
additionalTraceHeaders:
1620
# -- Tracing headers to duplicate.
1621
# To configure the following, tracing.otlp.enabled needs to be set to true.
1622
# @default -- See below
1623
enabled: false
1624
traceContext:
1625
# -- Name of the header that will contain the parent-id header copy.
1626
parentId: ""
1627
# -- Name of the header that will contain the trace-id copy.
1628
traceId: ""
1629
# -- Name of the header that will contain the traceparent copy.
1630
traceParent: ""
1631
# -- Name of the header that will contain the tracestate copy.
1632
traceState: ""
1633
# Define private plugin sources
1634
pluginRegistry:
1635
sources: {}
1636
# -- Required for OCI Marketplace integration.
1637
# See https://docs.public.content.oci.oraclecloud.com/en-us/iaas/Content/Marketplace/understanding-helm-charts.htm
1638
# @default -- See _values.yaml_
1639
oci_meta:
1640
# -- Enable specific values for Oracle Cloud Infrastructure
1641
enabled: false
1642
# -- It needs to be an ocir repo
1643
repo: cgr.dev
1644
images:
1645
proxy:
1646
image: chainguard-private/traefik
1647
tag: 3.7.16-r4@sha256:cf8ce2be806d62615f49bf41bf4ac5003547ebf5cb5138a602306987055873d8
1648
hub:
1649
image: chainguard-private/traefik
1650
tag: 3.7.16-r4@sha256:cf8ce2be806d62615f49bf41bf4ac5003547ebf5cb5138a602306987055873d8
1651
# -- Required for IBM Cloud Marketplace integration.
1652
# Injected by IBM Cloud Catalog when deploying via IBM Cloud Schematics. This value is not used by the chart.
1653
offering_version: "" # @schema type:[string, null]
1654
# -- Allow the Helm chart to be used as optional subchart.
1655
enabled: true # @schema type:boolean; const:true
1656

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.