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-r0@sha256:18fd707b23a4f7f8e86e9dc50361b220de4fa1a94d987b642ed493810f3fae09 # @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/spec/#gateway.networking.k8s.io/v1.Hostname)
175
hostname: ""
176
# Specify expected protocol on this listener. See [ProtocolType](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.ProtocolType)
177
protocol: HTTP
178
# -- (object) Routes are restricted to namespace of the gateway [by default](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.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/spec/#gateway.networking.k8s.io/v1.Hostname)
187
# hostname:
188
# # Specify expected protocol on this listener See [ProtocolType](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.ProtocolType)
189
# protocol: HTTPS
190
# # -- Routes are restricted to namespace of the gateway [by default](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.FromNamespaces)
191
# namespacePolicy:
192
# # -- Add certificates for TLS or HTTPS protocols. See [GatewayTLSConfig](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1.GatewayTLSConfig)
193
# certificateRefs:
194
# # -- TLS behavior for the TLS session initiated by the client. See [TLSModeType](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.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
# -- Pull secrets for fetching traefik container image when `deployment.imagePullSecrets` and `imagePullSecrets` are empty
868
imagePullSecrets: []
869
# -- Required for Azure Marketplace integration.
870
# See https://learn.microsoft.com/en-us/partner-center/marketplace-offers/azure-container-technical-assets-kubernetes?tabs=linux,linux2#update-the-helm-chart
871
# @default -- See _values.yaml_
872
azure:
873
enabled: false
874
images:
875
proxy:
876
image: chainguard-private/traefik
877
tag: 3.7.16-r0@sha256:18fd707b23a4f7f8e86e9dc50361b220de4fa1a94d987b642ed493810f3fae09
878
registry: cgr.dev
879
hub:
880
image: chainguard-private/traefik
881
tag: 3.7.16-r0@sha256:18fd707b23a4f7f8e86e9dc50361b220de4fa1a94d987b642ed493810f3fae09
882
registry: cgr.dev
883
# -- Additional arguments to be passed at Traefik's binary
884
# See [CLI Reference](https://docs.traefik.io/reference/static-configuration/cli/)
885
# Use curly braces to pass values: `helm install --set="additionalArguments={--providers.kubernetesingress.ingressclass=traefik-internal,--log.level=DEBUG}"`
886
additionalArguments: []
887
# - "--providers.kubernetesingress.ingressclass=traefik-internal"
888
# - "--log.level=DEBUG"
889
890
# -- Additional Environment variables to be passed to Traefik's binary
891
env: []
892
# -- Environment variables to be passed to Traefik's binary from configMaps or secrets
893
envFrom: []
894
# @schema mergeProperties: true
895
ports:
896
# @schema additionalProperties: false
897
traefik:
898
port: 8080
899
# -- (int) Use hostPort if set.
900
hostPort: # @schema type:[integer, null]; minimum:0
901
# -- Use hostIP if set. If not set, Kubernetes will default to 0.0.0.0, which
902
# means it's listening on all your interfaces and all your IPs. You may want
903
# to set this value if you need traefik to listen on specific interface
904
# only.
905
hostIP: # @schema type:[string, null]
906
# Defines whether the port is exposed if service.type is LoadBalancer or
907
# NodePort.
908
#
909
# -- You SHOULD NOT expose the traefik port on production deployments.
910
# If you want to access it from outside your cluster,
911
# use `kubectl port-forward` or create a secure ingress
912
expose:
913
default: false
914
# -- The exposed port for this service
915
exposedPort: 8080
916
# -- The port protocol (TCP/UDP)
917
protocol: TCP
918
observability: # @schema additionalProperties: false
919
# -- (bool) Defines whether a router attached to this EntryPoint produces metrics by default.
920
metrics: # @schema type:[boolean, null]; default: true
921
# -- (bool) Defines whether a router attached to this EntryPoint produces access-logs by default.
922
accessLogs: # @schema type:[boolean, null]; default: true
923
# -- (bool) Defines whether a router attached to this EntryPoint produces traces by default.
924
tracing: # @schema type:[boolean, null]; default: true
925
# -- Defines the tracing verbosity level for routers attached to this EntryPoint.
926
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
927
web:
928
# -- (bool) Enable this entrypoint as a default entrypoint. When a service doesn't explicitly set an entrypoint it will only use this entrypoint.
929
asDefault: # @schema type: [boolean, null]; default: null
930
port: 8000
931
# hostPort: 8000
932
# containerPort: 8000
933
expose:
934
default: true
935
exposedPort: 80
936
# -- (string/int) Different target traefik port on the cluster, useful for IP type LB
937
targetPort: # @schema type:[string, integer, null]; minimum:0
938
# -- The port protocol (TCP/UDP)
939
protocol: TCP
940
# -- (int) See [upstream documentation](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
941
nodePort: # @schema type:[integer, null]; minimum:0
942
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#allowacmebypass)
943
allowACMEByPass: false
944
http:
945
redirections:
946
# -- Port Redirections
947
# Added in 2.2, one can make permanent redirects via entrypoints.
948
# Same sets of parameters: to, scheme, permanent and priority.
949
# https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#configuration-example
950
entryPoint: {}
951
forwardedHeaders:
952
# -- Trust forwarded headers information (X-Forwarded-*).
953
trustedIPs: []
954
insecure: false
955
# -- Disable appending RemoteAddr to X-Forwarded-For header (v3.7+).
956
notAppendXForwardedFor: false
957
proxyProtocol:
958
# -- Enable the Proxy Protocol header parsing for the entry point
959
trustedIPs: []
960
insecure: false
961
# -- Set transport settings for the entrypoint
962
# @default -- nil
963
transport:
964
respondingTimeouts:
965
readTimeout: # @schema type:[string, integer, null]
966
writeTimeout: # @schema type:[string, integer, null]
967
idleTimeout: # @schema type:[string, integer, null]
968
lifeCycle:
969
requestAcceptGraceTimeout: # @schema type:[string, integer, null]
970
graceTimeOut: # @schema type:[string, integer, null]
971
keepAliveMaxRequests: # @schema type:[integer, null]; minimum:0
972
keepAliveMaxTime: # @schema type:[string, integer, null]
973
# -- (bool) Enable this port as an uplink for multi cluster.
974
# ⚠️ This feature is experimental and requires Traefik Hub with a specific subscription.
975
uplink: # @schema type: [boolean, null]; default: null
976
observability: # @schema additionalProperties: false
977
# -- (bool) Enables metrics for this entryPoint.
978
metrics: # @schema type:[boolean, null]; default: true
979
# -- (bool) Enables access-logs for this entryPoint.
980
accessLogs: # @schema type:[boolean, null]; default: true
981
# -- (bool) Enables tracing for this entryPoint.
982
tracing: # @schema type:[boolean, null]; default: true
983
# -- Defines the tracing verbosity level for this entryPoint.
984
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
985
websecure:
986
## -- Enable this entrypoint as a default entrypoint. When a service doesn't explicitly set an entrypoint it will only use this entrypoint.
987
# asDefault: true
988
port: 8443
989
# -- (int) Use hostPort if set.
990
hostPort: # @schema type:[integer, null]; minimum:0
991
# -- (int) Use containerPort if set.
992
containerPort: # @schema type:[integer, null]; minimum:0
993
expose:
994
default: true
995
exposedPort: 443
996
# -- (string/int) Different target traefik port on the cluster, useful for IP type LB
997
targetPort: # @schema type:[string, integer, null]; minimum:0
998
# -- The port protocol (TCP/UDP)
999
protocol: TCP
1000
# -- (int) See [upstream documentation](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
1001
nodePort: # @schema type:[integer, null]; minimum:0
1002
# -- See [upstream documentation](https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol)
1003
appProtocol: # @schema type:[string, null]
1004
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#allowacmebypass)
1005
allowACMEByPass: false
1006
http:
1007
# -- See [upstream documentation](https://doc.traefik.io/traefik/security/request-path/#encoded-character-filtering)
1008
# @default -- nil
1009
encodedCharacters: # @schema additionalProperties: false
1010
allowEncodedSlash: # @schema type:[boolean, null]
1011
allowEncodedBackSlash: # @schema type:[boolean, null]
1012
allowEncodedNullCharacter: # @schema type:[boolean, null]
1013
allowEncodedSemicolon: # @schema type:[boolean, null]
1014
allowEncodedPercent: # @schema type:[boolean, null]
1015
allowEncodedQuestionMark: # @schema type:[boolean, null]
1016
allowEncodedHash: # @schema type:[boolean, null]
1017
# -- (int) Maximum size of request headers in bytes. Default: 1048576 (1 MB)
1018
maxHeaderBytes: # @schema type:[integer, null]; minimum:0
1019
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#httpmiddlewares)
1020
middlewares: [] # @schema type: [array, null]
1021
# -- (bool) See [upstream documentation](https://doc.traefik.io/traefik/security/request-path/#path-sanitization)
1022
sanitizePath: # @schema type:[boolean, null]
1023
# -- Defines how request headers with non-alphanumeric characters in their names are handled (v3.7.12+).
1024
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#aliasheadersstrategy)
1025
aliasHeadersStrategy: # @schema enum:[keep, delete, reject, null]; type:[string, null]
1026
# -- Defines how request headers with underscores in their names are handled (v3.7.6-v3.7.11).
1027
# Replaced by the aliasHeadersStrategy option for Traefik v3.7.12+.
1028
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#underscoreheadersstrategy)
1029
underscoreHeadersStrategy: # @schema deprecated; enum:[keep, delete, reject, null]; type:[string, null]
1030
tls:
1031
# -- See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#opt-http-tls)
1032
# @default -- true
1033
enabled: true
1034
options: ""
1035
certResolver: ""
1036
domains: []
1037
http3:
1038
# -- Enable HTTP/3 on the entrypoint. It also enables the http3 experimental feature.
1039
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#opt-http3).
1040
# 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.
1041
enabled: false
1042
# -- (int) Defines the UDP port to advertise as the HTTP/3 authority.
1043
advertisedPort: # @schema type:[integer, null]; minimum:0
1044
forwardedHeaders:
1045
# -- Trust forwarded headers information (X-Forwarded-*).
1046
trustedIPs: []
1047
insecure: false
1048
# -- Disable appending RemoteAddr to X-Forwarded-For header (v3.7+).
1049
notAppendXForwardedFor: false
1050
proxyProtocol:
1051
# -- Enable the Proxy Protocol header parsing for the entry point
1052
trustedIPs: []
1053
insecure: false
1054
# -- Set transport settings for the entrypoint
1055
# @default -- nil
1056
transport:
1057
respondingTimeouts:
1058
readTimeout: # @schema type:[string, integer, null]
1059
writeTimeout: # @schema type:[string, integer, null]
1060
idleTimeout: # @schema type:[string, integer, null]
1061
lifeCycle:
1062
requestAcceptGraceTimeout: # @schema type:[string, integer, null]
1063
graceTimeOut: # @schema type:[string, integer, null]
1064
keepAliveMaxRequests: # @schema type:[integer, null]; minimum:0
1065
keepAliveMaxTime: # @schema type:[string, integer, null]
1066
observability: # @schema additionalProperties: false
1067
# -- (bool) Enables metrics for this entryPoint.
1068
metrics: # @schema type:[boolean, null]; default: true
1069
# -- (bool) Enables access-logs for this entryPoint.
1070
accessLogs: # @schema type:[boolean, null]; default: true
1071
# -- (bool) Enables tracing for this entryPoint.
1072
tracing: # @schema type:[boolean, null]; default: true
1073
# -- Defines the tracing verbosity level for this entryPoint.
1074
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
1075
metrics:
1076
# -- When using hostNetwork, use another port to avoid conflict with node exporter:
1077
# https://github.com/prometheus/prometheus/wiki/Default-port-allocations
1078
port: 9100
1079
# -- You may not want to expose the metrics port on production deployments.
1080
# If you want to access it from outside your cluster,
1081
# use `kubectl port-forward` or create a secure ingress
1082
expose:
1083
default: false
1084
# -- The exposed port for this service
1085
exposedPort: 9100
1086
# -- The port protocol (TCP/UDP)
1087
protocol: TCP
1088
observability: # @schema additionalProperties: false
1089
# -- (bool) Enables metrics for this entryPoint.
1090
metrics: # @schema type:[boolean, null]; default: true
1091
# -- (bool) Enables access-logs for this entryPoint.
1092
accessLogs: # @schema type:[boolean, null]; default: true
1093
# -- (bool) Enables tracing for this entryPoint.
1094
tracing: # @schema type:[boolean, null]; default: true
1095
# -- Defines the tracing verbosity level for this entryPoint.
1096
traceVerbosity: # @schema enum:[minimal, detailed, null]; type:[string, null]; default: minimal
1097
# -- TLS Options are created as [TLSOption CRDs](https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/crd/tls/tlsoption/)
1098
# When using `labelSelector`, you'll need to set labels on tlsOption accordingly.
1099
# See EXAMPLE.md for details.
1100
tlsOptions: {}
1101
# -- TLS Store are created as [TLSStore CRDs](https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/crd/tls/tlsstore/).
1102
# This is useful if you want to set a default certificate. See EXAMPLE.md for details.
1103
tlsStore: {}
1104
service:
1105
enabled: true
1106
# -- Override the default Service name. Useful for adopting an existing Service (e.g., during migration from another ingress controller).
1107
nameOverride: "" # @schema type:[string, null]
1108
# -- Single service exposing both TCP and UDP ports.
1109
# When set to false, it will create two Service, one for TCP and one for UDP.
1110
single: true
1111
# -- Additional annotations applied to both TCP and UDP services (e.g. for cloud provider specific config)
1112
annotations: {}
1113
# -- Additional annotations for TCP service only
1114
annotationsTCP: {}
1115
# -- Additional annotations for UDP service only
1116
annotationsUDP: {}
1117
# -- Additional service labels (e.g. for filtering Service by custom labels)
1118
labels: {}
1119
# -- Additional entries here will be added to the Service [spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#servicespec-v1-core).
1120
# Cannot contain selector or ports entries.
1121
spec:
1122
type: LoadBalancer
1123
# -- Can be used to create multiple Service.
1124
# See EXAMPLES.md for more details.
1125
additionalServices: {}
1126
autoscaling: # @schema additionalProperties: false
1127
# -- Create HorizontalPodAutoscaler object.
1128
# See EXAMPLES.md for more details.
1129
enabled: false
1130
# -- (int) minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.
1131
minReplicas: # @schema type:[integer, null]; minimum:0
1132
# -- (int) maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
1133
maxReplicas: # @schema type:[integer, null]; minimum:0
1134
# -- metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).
1135
metrics: []
1136
# -- behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).
1137
behavior: {}
1138
# -- 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.
1139
# @default -- Traefik Deployment
1140
scaleTargetRef:
1141
apiVersion: apps/v1
1142
kind: Deployment
1143
name: "{{ template \"traefik.fullname\" . }}"
1144
persistence:
1145
# -- Enable persistence using Persistent Volume Claims
1146
# ref: http://kubernetes.io/docs/user-guide/persistent-volumes/.
1147
# It can be used to store TLS certificates along with `certificatesResolvers.<name>.acme.storage` option
1148
enabled: false
1149
name: data
1150
existingClaim: ""
1151
accessMode: ReadWriteOnce
1152
size: 128Mi
1153
storageClass: # @schema type:[string, null]
1154
volumeName: ""
1155
path: /data
1156
annotations: {}
1157
# -- Only mount a subpath of the Volume into the pod
1158
subPath: ""
1159
# -- [EmptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) options when persistence is disabled
1160
emptyDir: {}
1161
# -- Certificates resolvers configuration.
1162
# Ref: https://doc.traefik.io/traefik/reference/install-configuration/tls/certificate-resolvers/acme/
1163
# See EXAMPLES.md for more details.
1164
certificatesResolvers: {}
1165
# -- If hostNetwork is true, runs traefik in the host network namespace
1166
# To prevent unschedulable pods due to port collisions, if hostNetwork=true
1167
# and replicas>1, a pod anti-affinity is recommended and will be set if the
1168
# affinity is left as default.
1169
hostNetwork: false
1170
rbac: # @schema additionalProperties: false
1171
# -- Whether Role Based Access Control objects like roles and rolebindings should be created
1172
enabled: true
1173
# -- When set to true: <br />
1174
# 1. It switches respectively the use of `ClusterRole` and `ClusterRoleBinding` to `Role` and `RoleBinding`.<br />
1175
# 2. It adds `disableClusterScopeResources` on Ingress and CRD (Kubernetes) providers<br />
1176
# **NOTE**: `IngressClass`, `NodePortLB` and **Gateway** provider cannot be used with namespaced RBAC. <br />
1177
# **NOTE**: with Traefik Hub, a cluster-scoped `ValidatingAdmissionPolicy` is deployed by default but can be opt-out. See `hub.restrictSecretTypes`. <br />
1178
# See [upstream documentation](https://doc.traefik.io/traefik/reference/install-configuration/providers/kubernetes/kubernetes-ingress/#opt-providers-kubernetesIngress-disableClusterScopeResources) for more details.
1179
namespaced: false
1180
# -- Enable user-facing roles
1181
# https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
1182
aggregateTo: []
1183
# -- 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.
1184
secretResourceNames: []
1185
# -- The service account the pods will use to interact with the Kubernetes API
1186
serviceAccount: # @schema additionalProperties: false
1187
# If set, an existing service account is used
1188
# If not set, a service account is created automatically using the fullname template
1189
name: ""
1190
# -- Additional serviceAccount annotations (e.g. for oidc authentication)
1191
serviceAccountAnnotations: {}
1192
# -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for `traefik` container.
1193
resources: {}
1194
# -- This example pod anti-affinity forces the scheduler to put traefik pods
1195
# -- on nodes where no other traefik pods are scheduled.
1196
# It should be used when hostNetwork: true to prevent port conflicts
1197
affinity: {}
1198
# podAntiAffinity:
1199
# requiredDuringSchedulingIgnoredDuringExecution:
1200
# - labelSelector:
1201
# matchLabels:
1202
# app.kubernetes.io/name: '{{ template "traefik.name" . }}'
1203
# app.kubernetes.io/instance: '{{ .Release.Name }}-{{ include "traefik.namespace" . }}'
1204
# topologyKey: kubernetes.io/hostname
1205
1206
# -- nodeSelector is the simplest recommended form of node selection constraint.
1207
nodeSelector: {}
1208
# -- Tolerations allow the scheduler to schedule pods with matching taints.
1209
tolerations: []
1210
# -- You can use topology spread constraints to control
1211
# how Pods are spread across your cluster among failure-domains.
1212
topologySpreadConstraints: []
1213
# This example topologySpreadConstraints forces the scheduler to put traefik pods
1214
# on nodes where no other traefik pods are scheduled.
1215
# - labelSelector:
1216
# matchLabels:
1217
# app.kubernetes.io/name: '{{ template "traefik.name" . }}'
1218
# maxSkew: 1
1219
# topologyKey: kubernetes.io/hostname
1220
# whenUnsatisfiable: DoNotSchedule
1221
1222
# -- [Pod Priority and Preemption](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/)
1223
priorityClassName: ""
1224
# -- [SecurityContext](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1)
1225
# @default -- See _values.yaml_
1226
securityContext:
1227
allowPrivilegeEscalation: false
1228
capabilities:
1229
drop: [ALL]
1230
readOnlyRootFilesystem: true
1231
# -- [Pod Security Context](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context)
1232
# @default -- See _values.yaml_
1233
podSecurityContext:
1234
runAsGroup: 65532
1235
runAsNonRoot: true
1236
runAsUser: 65532
1237
seccompProfile:
1238
type: RuntimeDefault
1239
#
1240
# -- Extra objects to deploy (value evaluated as a template)
1241
#
1242
# In some cases, it can avoid the need for additional, extended or adhoc deployments.
1243
# See #595 for more details and traefik/tests/values/extra.yaml for example.
1244
extraObjects: []
1245
# -- This field overrides the default Release Namespace for Helm.
1246
# It will not affect optional CRDs such as `ServiceMonitor` and `PrometheusRules`
1247
namespaceOverride: ""
1248
# -- This field overrides the default app.kubernetes.io/instance label for all Objects.
1249
instanceLabelOverride: ""
1250
# -- 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.
1251
versionOverride: ""
1252
# -- overrides the app.kubernetes.io/name label
1253
nameOverride: ""
1254
# -- Overrides the resource name for templates (i.e deployment, service, etc..)
1255
fullnameOverride: ""
1256
# Traefik Hub configuration. See https://doc.traefik.io/traefik-hub/
1257
hub: # @schema additionalProperties: false
1258
# -- (bool) Install Traefik Hub. Without `hub.token`, it runs in proxy mode: a drop-in Traefik
1259
# Proxy, which requires Traefik Hub >= v3.21.0-ea.
1260
# @default -- `true` when `hub.token` is set
1261
enabled: # @schema type:[boolean, null]
1262
# -- Name of `Secret` with key 'token' set to a valid license token.
1263
# It enables API Gateway.
1264
token: ""
1265
# -- Mount path for token secret.
1266
tokenMountPath: "/etc/secrets"
1267
# -- Use the hardened image variant. It appends `-hardened` to the tag and defaults the image
1268
# to `registry.traefik.io/traefik-hub`. Requires `hub.enabled` and Traefik Hub >= v3.21.0-ea.
1269
hardened: false
1270
# -- (bool) Disables all external network connections.
1271
offline: # @schema type:[boolean, null]
1272
# -- By default, Traefik Hub provider watches all namespaces. When using `rbac.namespaced`, it will watch helm release namespace and namespaces listed in this array.
1273
namespaces: [] # @schema required:true
1274
# -- Deploy a `ValidatingAdmissionPolicy` that only allows Traefik Hub to write `Opaque` and `kubernetes.io/tls` Secrets.
1275
# It prevents Traefik Hub from creating `kubernetes.io/service-account-token` Secrets. Requires `hub.token`.
1276
# **NOTE**: it is a cluster-scoped resource, also deployed with `rbac.namespaced`. Disable it only if the chart installer cannot create it.
1277
restrictSecretTypes: true
1278
apimanagement:
1279
# -- Set to true in order to enable API Management. Requires a valid license token.
1280
enabled: false
1281
admission:
1282
# -- WebHook admission server listen address. Default: "0.0.0.0:9943".
1283
listenAddr: ""
1284
# -- Certificate name of the WebHook admission server. Default: "hub-agent-cert".
1285
secretName: "hub-agent-cert"
1286
# -- 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.
1287
selfManagedCertificate: false
1288
# -- Set custom certificate for the WebHook admission server. The certificate should be specified with _tls.crt_ and _tls.key_ in base64 encoding.
1289
customWebhookCertificate: {}
1290
# -- 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.
1291
restartOnCertificateChange: true
1292
# -- Set custom annotations.
1293
annotations: {}
1294
openApi:
1295
# -- When set to true, it will only accept paths and methods that are explicitly defined in its OpenAPI specification
1296
validateRequestMethodAndPath: false
1297
# -- Interval to refresh the OpenAPI specification, as a Go duration. Must be at least `1m`.
1298
# @default -- `1m` when unset
1299
refreshInterval: ""
1300
mcpgateway:
1301
# -- Set to true in order to enable AI MCP Gateway. Requires a valid license token.
1302
enabled: false
1303
# -- (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).
1304
maxRequestBodySize: # @schema type:[integer, null]; minimum:0
1305
aigateway:
1306
# -- Set to true in order to enable AI 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
providers:
1311
consulCatalogEnterprise:
1312
# -- Enable Consul Catalog Enterprise backend with default settings.
1313
enabled: false
1314
# -- Use local agent caching for catalog reads.
1315
cache: false
1316
# -- Enable Consul Connect support.
1317
connectAware: false
1318
# -- Consider every service as Connect capable by default.
1319
connectByDefault: false
1320
# -- Constraints is an expression that Traefik matches against the container's labels
1321
constraints: ""
1322
# -- Default rule.
1323
defaultRule: "Host(`{{ normalize .Name }}`)"
1324
endpoint:
1325
# -- The address of the Consul server
1326
address: ""
1327
# -- Data center to use. If not provided, the default agent data center is used
1328
datacenter: ""
1329
# -- (int) WaitTime limits how long a Watch will block. If not provided, the agent default
1330
endpointWaitTime: # @schema type:[integer, null]
1331
httpauth:
1332
# -- Basic Auth password
1333
password: ""
1334
# -- Basic Auth username
1335
username: ""
1336
# -- The URI scheme for the Consul server
1337
scheme: ""
1338
tls:
1339
# -- TLS CA
1340
ca: ""
1341
# -- TLS cert
1342
cert: ""
1343
# -- TLS insecure skip verify
1344
insecureSkipVerify: false
1345
# -- TLS key
1346
key: ""
1347
# -- Token is used to provide a per-request ACL token which overrides the agent's
1348
token: ""
1349
# -- Expose containers by default.
1350
exposedByDefault: true
1351
# -- Sets the namespaces used to discover services (Consul Enterprise only).
1352
namespaces: ""
1353
# -- Sets the partition used to discover services (Consul Enterprise only).
1354
partition: ""
1355
# -- Prefix for consul service tags.
1356
prefix: "traefik"
1357
# -- Interval for checking Consul API.
1358
refreshInterval: 15
1359
# -- Forces the read to be fully consistent.
1360
requireConsistent: false
1361
# -- Name of the Traefik service in Consul Catalog (needs to be registered via the
1362
serviceName: "traefik"
1363
# -- Use stale consistency for catalog reads.
1364
stale: false
1365
# -- A list of service health statuses to allow taking traffic.
1366
strictChecks: "passing, warning"
1367
# -- Watch Consul API events.
1368
watch: false
1369
# @schema additionalProperties: false
1370
ec2:
1371
# -- Enable AWS EC2 provider.
1372
enabled: false
1373
# -- AWS region used for EC2 API requests. When empty, the region is retrieved from the EC2 Instance Metadata Service.
1374
region: ""
1375
# -- AWS access key ID, set together with secretAccessKey. Readable from the Pod spec: prefer IRSA, the instance role or `env`.
1376
accessKeyID: ""
1377
# -- AWS secret access key, set together with accessKeyID. Readable from the Pod spec: prefer IRSA, the instance role or `env`.
1378
secretAccessKey: ""
1379
# -- Expose instances by default. When false, only instances with the `traefik.enable=true` tag are exposed.
1380
exposedByDefault: true
1381
# -- Polling interval, in seconds, for the EC2 API.
1382
refreshSeconds: 15
1383
# -- Default rule applied to instances that do not define a router rule tag.
1384
defaultRule: ""
1385
# -- Expression matched against instance tags to determine whether to create routes for an instance.
1386
constraints: ""
1387
# -- Default backend IP mode: private, public or ipv6. Overridable per instance with the `traefik.ec2.ipmode` tag.
1388
ipMode: "" # @schema enum:["", "private", "public", "ipv6"]
1389
# -- EC2 API filters used to scope instance discovery. List of `{ name: "<filter>", values: ["<value>"] }` entries.
1390
filters: [] # @schema item:object
1391
# @schema additionalProperties: false
1392
securityGroupPortDiscovery:
1393
# -- Derive the backend port from the instance security-group rules when no port tag is set.
1394
enabled: false
1395
# -- Ports excluded from security-group port discovery. When empty, the provider excludes privileged ports except 80 and 443.
1396
excludedPorts: []
1397
microcks:
1398
# -- Enable Microcks provider.
1399
enabled: false
1400
auth:
1401
# -- Microcks API client ID.
1402
clientId: ""
1403
# -- Microcks API client secret.
1404
clientSecret: ""
1405
# -- Microcks API endpoint.
1406
endpoint: ""
1407
# -- Microcks API token.
1408
token: ""
1409
# -- Microcks API endpoint.
1410
endpoint: ""
1411
# -- Polling interval for Microcks API.
1412
pollInterval: 30
1413
# -- Polling timeout for Microcks API.
1414
pollTimeout: 5
1415
tls:
1416
# -- TLS CA
1417
ca: ""
1418
# -- TLS cert
1419
cert: ""
1420
# -- TLS insecure skip verify
1421
insecureSkipVerify: false
1422
# -- TLS key
1423
key: ""
1424
multicluster:
1425
# -- Enable Multi-cluster provider.
1426
enabled: false
1427
# -- Polling interval for Multi-cluster.
1428
pollInterval: 5
1429
# -- Polling timeout for Multi-cluster.
1430
pollTimeout: 5
1431
# @schema mergeProperties: true
1432
# -- Child cluster configurations, keyed by a unique name.
1433
# @default -- {}
1434
children:
1435
# @schema additionalProperties: false
1436
cluster-1:
1437
# -- URL of the child cluster's uplink entrypoint.
1438
address: ""
1439
# -- TLS and transport configuration for connecting to this child.
1440
# @default -- {}
1441
serversTransport:
1442
# -- (bool) Disable TLS certificate verification. **Not recommended for production.**
1443
# @default -- false
1444
insecureSkipVerify: # @schema type:[boolean, null]
1445
# -- Server name used for SNI and certificate verification.
1446
serverName: ""
1447
rootCAs: []
1448
certificates: []
1449
# -- (int) Maximum idle connections per host.
1450
# @default -- 200
1451
maxIdleConnsPerHost: # @schema type:[integer, null]
1452
# -- (bool) Disable HTTP/2 for connections to this child.
1453
# @default -- false
1454
disableHTTP2: # @schema type:[boolean, null]
1455
# -- Minimum TLS version (e.g. `VersionTLS12`, `VersionTLS13`).
1456
minVersion: ""
1457
# -- Maximum TLS version (e.g. `VersionTLS12`, `VersionTLS13`).
1458
maxVersion: ""
1459
# -- List of supported cipher suites for TLS versions up to 1.2.
1460
cipherSuites: []
1461
# -- URI used to match against SAN URIs during the server's certificate verification.
1462
peerCertURI: ""
1463
forwardingTimeouts:
1464
# @schema type:[string, integer, null]
1465
# -- Timeout for establishing connections.
1466
# @default -- 30s
1467
dialTimeout:
1468
# @schema type:[string, integer, null]
1469
# -- Timeout for reading response headers.
1470
# @default -- 0s
1471
responseHeaderTimeout:
1472
# @schema type:[string, integer, null]
1473
# -- Timeout for idle connections.
1474
# @default -- 90s
1475
idleConnTimeout:
1476
# @schema type:[string, integer, null]
1477
# -- Timeout for HTTP/2 server ping frames.
1478
# @default -- 15s
1479
pingTimeout:
1480
# @schema type:[string, integer, null]
1481
# -- Timeout for HTTP/2 connection idle reads.
1482
# @default -- 0s
1483
readIdleTimeout:
1484
# @schema type:[string, integer, null]
1485
# -- Timeout for reading the request body.
1486
# @default -- 0s
1487
readTimeout:
1488
# @schema type:[string, integer, null]
1489
# -- Timeout for writing the response.
1490
# @default -- 0s
1491
writeTimeout:
1492
spiffe:
1493
ids: []
1494
# @schema type:[string, integer, null]
1495
# -- SPIFFE trust domain.
1496
trustDomain: ""
1497
# @schema additionalProperties: false
1498
nutanixPrismCentral:
1499
# -- Enable Nutanix Prism Central provider.
1500
enabled: false
1501
# -- Prism Central endpoint.
1502
endpoint: ""
1503
# -- Prism Central username.
1504
username: ""
1505
# -- Prism Central password.
1506
password: ""
1507
# -- Prism Central API key.
1508
apiKey: ""
1509
# -- Base configuration file path.
1510
filename: ""
1511
# -- Polling interval for Nutanix Prism Central API.
1512
pollInterval: 30
1513
# -- Polling timeout for Nutanix Prism Central API.
1514
pollTimeout: 5
1515
# -- Category key used to derive the service name.
1516
serviceNameCategoryKey: "TraefikServiceName"
1517
# -- Filter VMs by VPCs. List of `{ uuid: "<vpc-uuid>" }` entries.
1518
allowedVpcs: []
1519
tls:
1520
# -- TLS CA
1521
ca: ""
1522
# -- TLS cert
1523
cert: ""
1524
# -- TLS key
1525
key: ""
1526
# -- TLS insecure skip verify
1527
insecureSkipVerify: false
1528
redis:
1529
# -- (bool) Enable Redis Cluster. Default: true.
1530
cluster: # @schema type:[boolean, null]
1531
# -- (int) Database used to store information. Default: 0.
1532
database: # @schema type:[integer, null]
1533
# -- Endpoints of the Redis instances to connect to. Default: "".
1534
endpoints: ""
1535
# -- The username to use when connecting to Redis endpoints. Default: "".
1536
username: ""
1537
# -- The password to use when connecting to Redis endpoints. Default: "".
1538
password: ""
1539
sentinel:
1540
# -- Name of the set of main nodes to use for main selection. Required when using Sentinel. Default: "".
1541
masterset: ""
1542
# -- Username to use for sentinel authentication (can be different from endpoint username). Default: "".
1543
username: ""
1544
# -- Password to use for sentinel authentication (can be different from endpoint password). Default: "".
1545
password: ""
1546
# -- Timeout applied on connection with redis. Default: "0s".
1547
timeout: ""
1548
tls:
1549
# -- Path to the certificate authority used for the secured connection.
1550
ca: ""
1551
# -- Path to the public certificate used for the secure connection.
1552
cert: ""
1553
# -- Path to the private key used for the secure connection.
1554
key: ""
1555
# -- When insecureSkipVerify is set to true, the TLS connection accepts any certificate presented by the server. Default: false.
1556
insecureSkipVerify: false
1557
# -- (bool) Enable export of error logs to the platform. Default: true.
1558
sendlogs: # @schema type:[boolean, null]
1559
# @schema additionalProperties: false
1560
# -- Tamper-evident transparency logs. It's enabled as soon as a `driver` is configured.
1561
# Requires a valid license token and Traefik Hub >= v3.21.
1562
# @default -- See _values.yaml_
1563
transparencyLogs:
1564
# @schema additionalProperties: false
1565
# -- Storage backend for the transparency log tree. Exactly one of `posix`, `gcp` or `aws` can be set.
1566
driver:
1567
# @schema additionalProperties: false
1568
posix:
1569
# -- Local filesystem path where the transparency log is stored.
1570
path: ""
1571
# @schema additionalProperties: false
1572
gcp:
1573
# -- Name of the GCS bucket used to store log state.
1574
bucket: ""
1575
# -- Prefix prepended to all log resource paths, to store multiple logs in one bucket.
1576
bucketPrefix: ""
1577
# -- GCP resource URI of the Spanner database instance to use.
1578
spanner: ""
1579
# @schema additionalProperties: false
1580
aws:
1581
# -- Name of the S3 bucket used to store log state.
1582
bucket: ""
1583
# -- Prefix prepended to all log resource paths, to store multiple logs in one bucket.
1584
bucketPrefix: ""
1585
# -- DSN of the MySQL instance to use. It carries the database password: treat it as a secret.
1586
dsn: ""
1587
# -- (int) Maximum number of open connections to the MySQL database.
1588
maxOpenConns: # @schema type:[integer, null]; minimum:0
1589
# -- (int) Maximum number of idle connections in the MySQL connection pool.
1590
maxIdleConns: # @schema type:[integer, null]; minimum:0
1591
# -- 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.
1592
signerPrivateKey: ""
1593
# -- Interval between checkpoint writes, as a Go duration. Must be at least `100ms`.
1594
# @default -- `1s` when unset
1595
checkpointInterval: ""
1596
# -- (bool) Also store the full rendered log line, not only its hash. Not recommended in production. Default: false.
1597
debug: # @schema type:[boolean, null]
1598
# @schema additionalProperties: false
1599
# -- Witnesses cosigning each checkpoint.
1600
# @default -- See _values.yaml_
1601
witnessGroup:
1602
# -- (int) Minimum number of witnesses that must cosign for the group to be satisfied. It cannot exceed the number of configured witnesses. Default: 1.
1603
threshold: # @schema type:[integer, null]; minimum:1
1604
# -- Maximum time to wait for witnesses to cosign a checkpoint, as a Go duration.
1605
# @default -- `5s` when unset
1606
timeout: ""
1607
# -- (bool) Publish checkpoints even when the witness policy cannot be satisfied. Intended only for a non-blocking adoption of witnessing. Default: false.
1608
failOpen: # @schema type:[boolean, null]
1609
# -- (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.
1610
witnesses: # @schema type:[array, null]; item:object; minItems:1
1611
tracing:
1612
additionalTraceHeaders:
1613
# -- Tracing headers to duplicate.
1614
# To configure the following, tracing.otlp.enabled needs to be set to true.
1615
# @default -- See below
1616
enabled: false
1617
traceContext:
1618
# -- Name of the header that will contain the parent-id header copy.
1619
parentId: ""
1620
# -- Name of the header that will contain the trace-id copy.
1621
traceId: ""
1622
# -- Name of the header that will contain the traceparent copy.
1623
traceParent: ""
1624
# -- Name of the header that will contain the tracestate copy.
1625
traceState: ""
1626
# Define private plugin sources
1627
pluginRegistry:
1628
sources: {}
1629
# -- Required for OCI Marketplace integration.
1630
# See https://docs.public.content.oci.oraclecloud.com/en-us/iaas/Content/Marketplace/understanding-helm-charts.htm
1631
# @default -- See _values.yaml_
1632
oci_meta:
1633
# -- Enable specific values for Oracle Cloud Infrastructure
1634
enabled: false
1635
# -- It needs to be an ocir repo
1636
repo: cgr.dev
1637
images:
1638
proxy:
1639
image: chainguard-private/traefik
1640
tag: 3.7.16-r0@sha256:18fd707b23a4f7f8e86e9dc50361b220de4fa1a94d987b642ed493810f3fae09
1641
hub:
1642
image: chainguard-private/traefik
1643
tag: 3.7.16-r0@sha256:18fd707b23a4f7f8e86e9dc50361b220de4fa1a94d987b642ed493810f3fae09
1644
# -- Required for IBM Cloud Marketplace integration.
1645
# Injected by IBM Cloud Catalog when deploying via IBM Cloud Schematics. This value is not used by the chart.
1646
offering_version: "" # @schema type:[string, null]
1647
# -- Allow the Helm chart to be used as optional subchart.
1648
enabled: true # @schema type:boolean; const:true
1649

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.